解决 android webview 重定向过多的问题
Solve too many redirect in android webview
我创建了一个 android WebView
并打开了我的网站,该网站使用 https 和身份验证重定向作为服务器,无论如何这在所有现代浏览器(如 opera、chrome、Firefox、edge)中都能成功运行和 eth 但在 android WebView
我得到了 'too many redirect' 错误
顺便说一下,当我将 WebView
缓存模式设置为 none 时,这个错误消失了,但我需要缓存模式,
任何人都可以帮助我吗?
使用此代码初始化 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">
我创建了一个 android WebView
并打开了我的网站,该网站使用 https 和身份验证重定向作为服务器,无论如何这在所有现代浏览器(如 opera、chrome、Firefox、edge)中都能成功运行和 eth 但在 android WebView
我得到了 'too many redirect' 错误
顺便说一下,当我将 WebView
缓存模式设置为 none 时,这个错误消失了,但我需要缓存模式,
任何人都可以帮助我吗?
使用此代码初始化 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">