android webview ERR_UNKNOWN_URL_SCHEME
16lz
2021-01-23
在android中webview请求网页时,有的网页跳转会报这个错,我之前代码是:
WebViewClient mWebviewclient = new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // TODO Auto-generated method stub super.onReceivedError(view, errorCode, description, failingUrl); } }; webView.setWebViewClient(mWebviewclient);
网上查了帖子,说是将
webView.setWebViewClient(mWebviewclient);
改为
webView.setWebChromeClient(new WebChromeClient());
这样确实能解决问题,但是会导致其它问题,比如说我想在方法onReceivedSslError()或者onReceivedError()中做些处理,这时就很棘手,我的解决办法是,
WebViewClient mWebviewclient = new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { return super.shouldOverrideUrlLoading(view, url); } @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { handler.proceed(); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // TODO Auto-generated method stub super.onReceivedError(view, errorCode, description, failingUrl); } }; webView.setWebViewClient(mWebviewclient);
就是在 shouldOverrideUrlLoading()方法中,将view.loadUrl(url)方法去掉就好~
更多相关文章
- android 2.2+ 完全退出程序的方法
- android MediaPlayer出现RuntimeException: failure code: -38崩
- android 设置壁纸几种方法
- Android学习札记17:ImageView中的setImageBitmap()方法
- Anfdroid网络编程方法
- Android:解决列表滚动时背景色变黑的方法
- 把android平板USB上输出LOG方法
- Windows下Android开发环境配置的一种方法
- Android Studio 3.0找不到Android Device Monitor的解决方法