搞一個 Android 的webview demo 來訪問網頁,
結果 模擬器就報錯了: webpage err_unknown_url_scheme
於是去百度了 一下。發現挺多解決方案的,都拿來試試。居然有幾種方式都可以。
1,
參考 https://blog.csdn.net/grp0916/article/details/51481330
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setJavaScriptEnabled(true); //設置WebView屬性,運行執行js腳本
webView.loadUrl("https://www.baidu.com/"); //調用loadUrl方法爲WebView加入鏈接
setContentView(webView);
2,
參考 https://blog.csdn.net/BarryYangGoing/article/details/51848907
// webView.setWebViewClient(new WebViewClient() {
// //設置在webView點擊打開的新網頁在當前界面顯示,而不跳轉到新的瀏覽器中
// @Override
// public boolean shouldOverrideUrlLoading(WebView view, String url) {
//
//
// if( url.startsWith("http:") || url.startsWith("https:") ) {
// return false;
// }
// Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
// startActivity(intent);
// // 下面這一行保留的時候,原網頁仍報錯,新網頁正常.所以註釋掉後,也就沒問題了
// // view.loadUrl(url);
// return true;
//
//
//
//
//
//
//
//
// }
// });
也可以
3,
參考
https://blog.csdn.net/xiaopihair123/article/details/73350778
webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0");
看起來是可以訪問了,
可是有一個問題:
就是 如果地址是 www.baidu.com 一般來說,都是會識別而跳轉到 m.baidu.com
但是上面的方式不會訪問的是PC端的百度頁面。所以應該是內容設置不對, 如果有興趣可以自己去修改。
4,
參考: https://blog.csdn.net/u013062469/article/details/46326573
if (httpurl.startsWith("scheme:") || httpurl.startsWith("scheme:")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(httpurl));
startActivity(intent);
}
return false;
5,
直接 return false
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;
}
});