gpt4 book ai didi

android - 如何在 android webview 中强制使用深色网页?

转载 作者:行者123 更新时间:2023-12-03 16:48:35 68 4
gpt4 key购买 nike

如果我们启用 chrome://flags/#enable-force-dark
在 android 上的 chrome 浏览器中标记然后网页变暗。
我想在 android webview 中实现类似的东西(即暗网 ui)。
目前我正在使用以下代码:

  private void injectCSS() {

String code = "javascript:(function() {" +
"var node = document.createElement('style');"+
"node.type = 'text/css';"+
" node.innerHTML = 'body, label,th,p,a, td, tr,li,ul,span,table,h1,h2,h3,h4,h5,h6,h7,div,small {"+
" color: #deFFFFFF;"+
"background-color: #232323;"+
" } ';"+
" document.head.appendChild(node);})();";

webView.evaluateJavascript(code,null);

}
我在以下位置运行此代码:
    @Override
public void onProgressChanged(WebView view, final int
newProgress) {
super.onProgressChanged(view, newProgress);
injectCSS();
}

@Override
public void onPageStarted(final WebView view, String url,
Bitmap favicon) {
injectCSS();
super.onPageStarted(view, url, favicon);
}

@Override
public void onPageFinished(WebView view, final String url)
{
injectCSS();
super.onPageFinished(view, url);
}
现在我接近了同样的黑暗网页,比如 chrome。但我想改进此代码,因为它存在一些问题,例如无法正确显示 anchor 链接。建议任何更好的技术(如果有)

最佳答案

如果您看到 androidx.webkit:webkit:1.3.0-beta01 更改日志,您可以看到添加了 ForceDark API 来控制 WebView应该在暗模式下渲染。您可以使用 ForceDarkStrategy API 控制 WebView变暗(CSS/Web 内容变暗与自动变暗)。
在尝试访问此功能之前,请确保正在使用的 Webview 支持它。为此, WebViewFeature 类(class)有 isFeatureSupported() 功能,可用于检查是否支持给定功能。因此,在我们继续设置对暗模式的支持之前,请检查它是否受支持:

if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) { ... }
WebSettingsCompat 中有 3 个不同的常量可用配置 -
  • FORCE_DARK_OFF – 禁用 webview 的强制暗模式,这意味着 webview 的内容将按原样呈现
  • FORCE_DARK_ON – 启用 webview 的强制黑暗模式,这意味着 webview 的内容将始终以黑暗主题呈现
  • FORCE_DARK_AUTO – 根据父 View 的状态为 webview 启用强制暗模式,这意味着在渲染 webview 的内容时将遵循系统暗模式设置。

  • 使用 setForceDark 相应地应用它功能-
    WebSettingsCompat.setForceDark(webView.settings, WebSettingsCompat.FORCE_DARK_ON)

    关于android - 如何在 android webview 中强制使用深色网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62548348/

    68 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com