@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 如下方案可在非微信内部WebView的H5页面中调出微信支付
if (url.startsWith("weixin://wap/pay?")) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
} else if (parseScheme(url)) {
try {
Intent intent;
intent = Intent.parseUri(url,
Intent.URI_INTENT_SCHEME); intent.addCategory("android.intent.category.BROWSABLE");
intent.setComponent(null);
// intent.setSelector(null);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
} else {
view.loadUrl(url);
}
return true;
}
public boolean parseScheme(String url) {
if (url.contains("platformapi/startapp")) {
return true;
} else if ((Build.VERSION.SDK_INT > Build.VERSION_CODES.M)
&& (url.contains("platformapi") && url.contains("startapp"))) {
return true;
} else {
return false;
}
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, android.net.http.SslError error)
{ // 重写此方法可以让webview处理https请求
handler.proceed();
}