通过类WebView

时间:2019-01-17 08:13:11

标签: android android-webview

加载URL时出错。我还提供了所有必需的许可。  控制台->错误:-6 net :: ERR_CONNECTION_CLOSED。

 webview.setListener(this, this)
    webview.setDownloadListener(this)
    webview.run {
        setMixedContentAllowed(true)
        setGeolocationEnabled(true)
        setCookiesEnabled(true)
        setThirdPartyCookiesEnabled(true)
    }

    with(webview.settings) {
        javaScriptCanOpenWindowsAutomatically = true
        domStorageEnabled = true
        javaScriptEnabled = true
        userAgentString = "Android WebView"
        allowFileAccess = true
        allowContentAccess = true
        allowFileAccessFromFileURLs = true
        allowUniversalAccessFromFileURLs = true
    }
    webview.clearCache(true);
    webview.clearHistory();
    webview.reload();
    //load url
    webview.loadUrl(url)

2 个答案:

答案 0 :(得分:0)

您是否在使用像百度这样的防病毒软件?如果您正在使用,那么我根据此

为您please translate this link into english为您提供了此解决方案

“亲爱的,第一次发求助,通常是百度,这次没有百度,求助〜

手机Android客户端https-webview的

部分提示ERR_CONNECTION_CLOSED,具有百度,尚未解决。

无法访问https页面,但可以正常访问https服务 (以前,Android 6.0无法访问https服务,后来又在tomcat配置中添加了诸如ciphers =“ SSL_RSA_WITH_RC4_128_SHA”的信息)。

调试时,在侦听webview-onrecievederr时,它将ERR_CONNECTION_CLOSED返回到

收听onrecievedsslerr。似乎没有反映出来,这里的日志也没有打印出来。 。 代码里面的OnReceivedSslError如下: handler.proceed(); //接受所有网站的证书 和打印日志信息,但是在运行时,不会打印日志信息

OPPO R9,三星S6,华为mate 8等暂时已知的手机型号。

在调试开发环境(未更改代码)时,这种情况下的手机出现在生产环境中,但是在开发环境中打开了相关的https-webview。

将生产环境的tomcat配置文件server.xml放入开发环境中以运行调试,这也是正常的。

由于百度表示可能是端口问题,所以开发环境会将tomcat ssl-port配置为8443或9010调试,也很正常。

生产环境已完成apache负载平衡(tomcat分别部署在4台主机上),并且外部网络https-9010对应于Intranet的https-8443。

请给大神一个方向。”

答案 1 :(得分:0)

webview google security和ssl存在一些问题,请尝试使用https而不是http,如果仅使用url http,则可以忽略SSL证书错误。要忽略此问题,请重写onReceivedSslError并删除super.onReceivedSslError(view,处理程序,错误);

webView.setWebViewClient(new WebViewClient(){
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
            // DOT CALL SUPER METHOD
            super.onReceivedSslError(view, handler, error);
        }
    });

并解决Google安全问题

setDomStorageEnabled(true);

完整代码如下:

webView.enableJavaScript();
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebViewClient(new WebViewClient(){
        @Override
        public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {

        }
    });

要查看此问题,请访问此link