搞一个 Android 的webview demo 来访问网页,java
结果 模拟器就报错了: webpage err_unknown_url_schemeweb
因而去百度了 一下。发现挺多解决方案的,都拿来试试。竟然有几种方式均可以。浏览器
1,ide
参考 https://blog.csdn.net/grp0916/article/details/51481330url
webView.setWebChromeClient(new WebChromeClient()); webView.getSettings().setJavaScriptEnabled(true); //设置WebView属性,运行执行js脚本 webView.loadUrl("https://www.baidu.com/"); //调用loadUrl方法为WebView加入连接 setContentView(webView);
2,.net
参考 https://blog.csdn.net/BarryYangGoing/article/details/51848907code
// 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; // // // // // // // // // } // });
也能够blog
3,ip
参考webview
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; } });