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"

本文标签: 打不开网页androidwebview