首页 > 解决方案 > WebView 在 android 4.2(17) 中不加载 instagram 登录网站

问题描述

我正在为 Android 开发一个应用程序,用户可以通过我的应用程序中的内部 WebView 登录到他/她的帐户。我https://www.instagram.com/accounts/login/为此目的使用 url。问题是在 Android 4.2(api 17) 中,WebView 保持在加载状态并且不加载 url。我检查了回调,webViewClient它显示onPageFinished被调用但由于某些原因它没有正确显示网站。

这是我的活动代码:

class LoginBrowserActivity : BaseActivity<ActivityAuthenticationWebBrowserBinding>() {

    @SuppressLint("SetJavaScriptEnabled")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val loginUrl: String = "https://www.instagram.com/accounts/login/"

        bindingView.webView.clearCache(true)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            CookieManager.getInstance().removeAllCookies(null)
            CookieManager.getInstance().flush()
        } else {
            CookieManager.getInstance().removeAllCookie()
        }
        bindingView.webView.settings.javaScriptEnabled = true;
        bindingView.webView.settings.domStorageEnabled = true;
        bindingView.webView.settings.javaScriptCanOpenWindowsAutomatically = true;
        bindingView.webView.webViewClient = object : WebViewClient() {

            override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) {
                handler?.proceed()
            }

            override fun onPageFinished(view: WebView?, url: String?) {
                super.onPageFinished(view, url)
            }

            override fun onReceivedError(view: WebView?, request: WebResourceRequest?, error: WebResourceError?) {
                super.onReceivedError(view, request, error)
            }

        }
        bindingView.webView.loadUrl(loginUrl)
    }

}

在此处输入图像描述

标签: javaandroidkotlinandroid-webview

解决方案


推荐阅读