android - 使用带有 web View 的暗模式

标签 android css android-webview android-dark-theme

我似乎无法让 android web view 使用深色主题或使用

@media (prefers-color-scheme: dark)

我正在使用带有 DayNight 主题的 AndroidX

有没有人在 api 29 之前有向后兼容的解决方案?

最佳答案

添加到您应用的 build.grade:

implementation "androidx.webkit:webkit:1.2.0"
您可以在此处查看要使用的最新版本:
https://developer.android.com/jetpack/androidx/releases/webkit
如果您有一个扩展 WebView 的类,则将其添加到扩展类的构造函数中:
  public MyWebView(Context context, AttributeSet attrs) {
       super(context, attrs);

       ...
            
      if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
          WebSettingsCompat.setForceDark(getSettings(), WebSettingsCompat.FORCE_DARK_ON);
      }

      ...
  }
如果您有一个实例化 webview 的 Activity ,请将其添加到 Activity 的 onCreate 方法中:
    myWebView = getViewById(R.id.web_content);
    if (WebViewFeature.isFeatureSupported(WebViewFeature.FORCE_DARK)) {
        WebSettingsCompat.setForceDark(myWebView.getSettings(),
                                       WebSettingsCompat.FORCE_DARK_ON);
    }
当然,您可能想决定您想要哪种力量策略:
WebSettingsCompat.FORCE_DARK_ON
WebSettingsCompat.FORCE_DARK_OFF
WebSettingsCompat.FORCE_DARK_AUTO

关于android - 使用带有 web View 的暗模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59720952/

相关文章:

android - POST 请求给出 FileNotFoundException

android - 为什么我得到像包文件没有正确签名的错误?

javascript - 如何使用引导切换来调用函数?

javascript - HTML 链接会像表单一样下拉菜单?

html - 没有 overflow-y 的 div 内的垂直滚动条 : scroll

android - Recyclerview 保持点击的项目突出显示 - Android

android - Flutter:添加到 Hive 框中的对象的字段在应用重启后返回 null

android - 在 WebView 中更改 URL 而不是打开浏览器

android - 使用 flash 和 WebView 在 Android 中播放 RTMP 流

android - 单击下载按钮时请求许可