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);