Android WebView 深色主题适配

深色主题适配时,webview可以通过api设置自动适配,不用再添加night资源,但是对系统版本有要求,需要android 10(Build.VERSION_CODES.Q),才能调用此api。方法见如下.

public class WebViewActivity extends AppCompatActivity {
    
    
    WebView mWebView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);
        mWebView = findViewById(R.id.web_view);
        mWebView.getSettings();
        //得到webview设置
        WebSettings webSettings = mWebView.getSettings();
        //允许使用javascript
        webSettings.setJavaScriptEnabled(true);
        //设置字符编码
        webSettings.setDefaultTextEncodingName("UTF-8");
        //支持缩放
        webSettings.setSupportZoom(true);
        webSettings.setBuiltInZoomControls(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setLoadWithOverviewMode(true);
        //将WebAppInterface与javascript绑定
        //mWebView.addJavascriptInterface(new PaymentJavaScriptInterface(),"Android");
        //android assets目录下html文件路径url为 file:///android_asset/profile.html
        String url = "file:///android_asset/" + "百度一下,你就知道.html";
        mWebView.loadUrl(url);
    }

    @RequiresApi(api = Build.VERSION_CODES.Q)
    @Override
    protected void onResume() {
    
    
        super.onResume();
        if ((getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES) {
    
     //判断如果系统是深色主题
            mWebView.getSettings().setForceDark(WebSettings.FORCE_DARK_ON);//强制开启webview深色主题模式
        } else {
    
    
            mWebView.getSettings().setForceDark(WebSettings.FORCE_DARK_OFF);
        }
    }
}

请添加图片描述
代码地址https://github.com/wqxcloud/GitTest/blob/master/app/src/main/java/com/im/gittest/activity/WebViewActivity.java

猜你喜欢

转载自blog.csdn.net/w690333243/article/details/119521266