public class MyWebViewClient extends WebViewClient{ // WebView 开始加载页面时回调,一次Frame加载对应一次回调 @Override public void onPageStarted(WebView webView, String s, Bitmap bitmap) { // 在这里可以写加载的进度条 super.onPageStarted(webView, s, bitmap); } @Override public boolean shouldOverrideUrlLoading(final WebView view, String url) { if (url.startsWith("tel:")) { Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse(url)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } else { /** * 推荐采用的新的二合一接口(payInterceptorWithUrl),只需调用一次 */ final PayTask task = new PayTask(MyDanceWebActivity.this); boolean isIntercepted = task.payInterceptorWithUrl(url, true, new H5PayCallback() { @Override public void onPayResult(final H5PayResultModel result) { // 支付结果返回 final String url = result.getReturnUrl(); Log.e("aaa","支付结果返回url:"+url); if (!TextUtils.isEmpty(url)) { MyDanceWebActivity.this.runOnUiThread(new Runnable() { @Override public void run() { view.loadUrl(url); } }); } } }); /** * 判断是否成功拦截 * 若成功拦截,则无需继续加载该URL;否则继续加载 */ if (!isIntercepted) { view.loadUrl(url); } // view.loadUrl(url); } return true; } //WebView 完成加载页面时回调,一次Frame加载对应一次回调 @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); mWebView.loadUrl("javascript:nativeInterFaceHandler.callNative(document.getElementById('version').innerText);"); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); showErrorPage();//显示错误页面 } }
webView中对URL的拦截
最新推荐文章于 2024-04-30 17:22:00 发布