今天给公司前端同事打了个webview测试包,发现页面打不开,有两个原因
1.测试webview包没有配置好,特别是缓存没配置的同事用到h5缓存就打不开了,正确配置如下
// 设置支持javascript
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
//设置js可以直接打开窗口,如window.open(),默认为false
webView.getSettings().setJavaScriptEnabled(true);
//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞
webView.getSettings().setSupportZoom(true);
//是否可以缩放,默认true
webView.getSettings().setBuiltInZoomControls(true);
// 是否显示缩放按钮,默认false
webView.getSettings().setUseWideViewPort(true);
// 设置此属性,可任意比例缩放。大视图模式
webView.getSettings().setLoadWithOverviewMode(true);
// 和setUseWideViewPort(true)一起解决网页自适应问题
webView.getSettings().setAppCacheEnabled(true);
// 是否使用缓存
webView.getSettings().setDomStorageEnabled(true);//DOM Storage
//访问网页
webView.loadUrl(address);
//系统默认会通过手机浏览器打开网页,为了能够直接通过WebView显示网页,则必须设置
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//使用WebView加载显示url
view.loadUrl(url);
//返回true
return true;
}
});
2.打开页面报错net::ERR_CLEARTEXT_NOT_PERMITTED
缺少是否打算使用明文网络流量;
指示应用是否打算使用明文网络流量,如明文 HTTP。对于目标 API 级别为 27 或更低级别的应用,默认值为 "true"
。对于目标 API 级别为 28 或更高级别的应用,默认值为 "false"
。文章来源:https://www.toymoban.com/news/detail-502327.html
在AndroidManifest.xml的Application节点中声明:文章来源地址https://www.toymoban.com/news/detail-502327.html
android:usesCleartextTraffic="true"
到了这里,关于Android WebView打不开网页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!