首页 > 解决方案 > 无法使用在 url 中传递的源重定向 web 视图中的用户

问题描述

我正在使用 android webview 在我的应用程序中打开一个 URL。我希望 webview 在不寻找浏览器的情况下处理 webview 本身中的所有重定向。我通过创建一个webViewClient并覆盖该shouldOverrideUrlLoading方法来实现它。

如果与 URL 一起传递,则 URL 应将用户重定向到登录页面source=android_apps但是 webview 不处理重定向到登录页面,而是打开一个弹出对话框,其中包含登录选项,预计在source=android_apps未传递时会出现

参考代码

wv_content.setWebViewClient(object : WebViewClient() {
            override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
                handleCurrentUrl(url)
                super.onPageStarted(view, url, favicon)
            }

            override fun shouldOverrideUrlLoading(webView: WebView, url: String): Boolean {
                return shouldOverrideUrlLoading(url)
            }

            @TargetApi(Build.VERSION_CODES.N)
            override fun shouldOverrideUrlLoading(webView: WebView?, request: WebResourceRequest): Boolean {
                val uri: Uri = request.getUrl()
                return shouldOverrideUrlLoading(uri.toString())
            }

            override fun onPageFinished(view: WebView?, url: String?) {
                super.onPageFinished(view, url)
                pb_loading.visibility = View.GONE
            }

            private fun shouldOverrideUrlLoading(url: String): Boolean {
                return false
            }
        })

        wv_content.loadUrl(url)
    }

我还通过在 chrome mWeb 中运行相同的 URL 进行了检查,它按预期工作,但在移动 webview 中没有。移动 webview 是否有可能不欣赏通过 URL 传递的源?

我已经尝试了所有可用于类似任务的可能解决方案,但没有一个有效。寻求帮助。提前致谢。

标签: androidandroid-studioredirectwebviewandroid-webview

解决方案


推荐阅读