在 Android 中,WebView是一个基于WebKit的控件,用于在应用程序中显示网页内容。WebView使用的内核可以是系统默认的内核,也可以是自定义的内核。以下是设置WebView内核的步骤:文章来源:https://www.toymoban.com/news/detail-700994.html
- 自定义WebViewClient和WebChromeClient
JAVA
Copy
public class MyWebViewClient extends WebViewClient {
// 自定义WebViewClient,实现页面加载完成的回调
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// 页面加载完成后,可以判断当前WebView使用的内核类型
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// 使用的是 Chromium 内核
} else {
// 使用的是原生 WebView 内核
}
}
}
public class MyWebChromeClient extends WebChromeClient {
// 自定义WebChromeClient,实现页面加载进度的回调
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
}
}文章来源地址https://www.toymoban.com/news/detail-700994.html
- 设置WebViewClient和WebChromeClient
JAVA
Copy
WebView webView = findViewById(R.id.webview);
webView.setWebViewClient(new MyWebViewClient());
webView.setWebChromeClient(new MyWebChromeClient()); - 设置WebView内核
JAVA
Copy
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// 使用 Chromium 内核
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);
} else {
// 使用原生 WebView 内核
webView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
需要注意的是,从 Android 7.0 开始,WebView默认使用Chrome作为内核,如果要使用原生WebView内核,需要在AndroidManifest.xml中添加以下代码:
XML
Copy
<application
…
android:usesCleartextTraffic=“true”
android:hardwareAccelerated=“true”
android:networkSecurityConfig=“@xml/network_security_config”>
…
到了这里,关于Android webview内核设置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!