在调用同程旅游的订购机票的h5页面时,发现到了支付这一步的时候,会提示 ERR_UNKNOWN_URL_SCHEME,后来查了才知道原来是被拦截了。我们传递到webview里的url不一定是合法的,很有可能是被定义好的,用来打开本地app的,以为我们都是知道,通过rul是可以打开本地app的,所以我们要添加以下代码。
mWebView = (WebView) findViewById(R.id.guangweb);
mWebView.loadUrl("地址");
mWebView.requestFocusFromTouch();
mWebView.getSettings()
.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
/** 覆盖调用系统或自带浏览器行为打开网页 */
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("http:") || url.startsWith("https:")) {
return false;
}
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri
.parse(url));
startActivity(intent);
} catch (Exception e) {
}
return true;
}
});