1.仔细观察图中url可以发现这是一个自定协议url,原因是拦截webview中的url, 如果url是自定义协议(如: tel, weixin, alipays 等等)开头, 就url转换为原生调用(intent跳转), 因为webview只能识别http, https这样的协议. webview其实相当于pc终端浏览器, 遇到http/https开头的url时会向host发起请求, 不知道如何处理自定义协议, 所以会出现ERR_UNKNOWN_URL_SCHEME这样的错误。 2.解决方法 以"http","https"开头的url在本页用webview进行加载,其他链接进行跳转,交给系统浏览器处理
mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { String url = request.getUrl().toString(); if(url.startsWith("http:") || url.startsWith("https:") ) { view.loadUrl(url); return false; }else{ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(intent); return true; } } });