android webview ERR_UNKNOWN_URL_SCHEME
16lz
2021-12-04
在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(安卓)结束进程的方法
- widget入门
- android 去除ScrollVIew拉到尽头时再拉的阴影效果和个别机型的阻
- 10.10笔记,android通知栏兼容性,matches the given name 'android
- Android事件处理
- Android(安卓)中使用自定义字体的方法
- Android(安卓)AlertDialog的基本使用方法
- Android之设置横、竖屏方法
- Android(安卓)SDK下载和更新失败的解决方法