admin管理员组文章数量:1635992
今天给公司前端同事打了个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"
。
在AndroidManifest.xml的Application节点中声明:
android:usesCleartextTraffic="true"
版权声明:本文标题:Android WebView打不开网页 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1729220143a1190811.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论