webview問題

android加載百度首頁後點擊中間的一些地址跳轉出現錯誤頁面,如去下載百度app那個按鈕進去的頁面

頁面提示錯誤 baiduboxapp://webView加載網頁後出現ERRUNKNOWNURL_SCHEME

找了好多答案都沒有解決,最終在多次嘗試後偶然發現一個非常簡單的方案。

 mBinding.webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                try {
                    //爲鏈接時交給webbiew處理
                    if (url.startsWith("http:") || url.startsWith("https:")) {
                        view.loadUrl(url);
                        return true;//一定要返回true!
                    }
                    //否則給系統瀏覽器處理
                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                    startActivity(intent);
                    return true;//一定要返回true!!
                } catch (Exception e) {
                    return true;//一定要返回true!!!
                }
            }

            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                handler.proceed();
            }

        });

就這樣簡單的搞定了,我就是catch中沒有返回ture,浪費了幾個小時在調試

還有一些其他的相關配置,

webSettings.setUserAgentString("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0");

不過最主要的還是setWebViewClient的配置問題,記錄一下,以後再有這種情況不會只留個模糊的記憶。

---------------分割線-------另一個問題----------

還有一種場景,部分手機在webview加載鏈接出現空白的情況

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;//一定要返回true!
    }

關鍵也是這裏要執行view.loadUrl(url);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章