webView中对URL的拦截

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();//显示错误页面
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值