在Android 9和更高版本中,双WebView实例可能会引发问题。这是由于新的多进程架构已经更改了Android系统的WebView实现方式。
为了解决这个问题,可以使用以下方法之一:
implementation 'androidx.webkit:webkit:1.0.0'
b. 在应用程序中使用以下代码创建WebView实例:WebView webView = new WebView(context);
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
c. 在创建每个WebView实例时,都要将WebView绑定到不同的进程中以确保它们运行在单独的进程中:webView.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
Log.e(TAG, error.getDescription().toString());
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; Android 9; Redmi Note 5 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.90 Mobile Safari/537.36");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
webView.setRendererPriorityPolicy(RENDERER_PRIORITY_IMPORTANT, true);
}
webView.loadUrl(YOUR_URL);
注意:请确保在使用第3种方法时,只有在确实需要使用双WebView实例时才使用它。因为这种方法可能会带来额外的性能开销,并且可能会降低应
上一篇:Android9屏幕旋转方法
下一篇:Android9问题:androidx.compose.ui.platform.ViewLayer无法转换为android.view.ViewGroup。