在网页视图中使用深色模式

2024-01-30

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

@media (prefers-color-scheme: dark)

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

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


添加到应用程序的 build.gradle:

implementation "androidx.webkit:webkit:1.2.0"

您可以在此处查看要使用的最新版本:

https://developer.android.com/jetpack/androidx/releases/webkit 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);
      }

      ...
  }

如果您有一个实例化 Web 视图的 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在网页视图中使用深色模式 的相关文章

随机推荐