解决adroid Webview中的过多redicret

时间:2019-04-26 16:11:50

标签: android ssl android-webview

我创建了一个Android WebView,并打开了我的网站,该服务器通过https和身份验证重定向成功运行,无论如何,该操作在opera,chrome,Firefox,edge和eth等所有现代浏览器中都可以成功运行,但在android WebView中我收到“重定向过多” 错误 顺便说一下,当我将WebView缓存模式设置为none时,该错误消失了,但是我需要缓存模式, 有谁可以帮助我?

1 个答案:

答案 0 :(得分:1)

使用此代码初始化Webview并设置url,在所有Android版本上都可以正常工作

@SuppressLint("SetJavaScriptEnabled")
private fun initWebView() {
    webView.settings.javaScriptEnabled = true
    webView.settings.loadsImagesAutomatically = true
    webView.scrollBarStyle = View.SCROLLBARS_INSIDE_OVERLAY
    webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null)
}

private fun webViewListener() {
    webView.webViewClient = object : WebViewClient() {
        override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
            super.onPageStarted(view, url, favicon)
             Log.d(TAG, url)  
        }
        override fun onReceivedError(view: WebView, request: WebResourceRequest,
                                     error: WebResourceError) {
            super.onReceivedError(view, request, error)
           //Error load url
        }
        override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
            //Loading url
            view?.loadUrl(url)
            return true
        }
    }
}

在清单文件中添加此行

   <application
    ...
    android:usesCleartextTraffic="true">

You can read more about usesCleartextTraffic