android webview拦截跳转,【Android】WebView拦截h5的Url并跳转native

WebView拦截H5的Url,跳转到native(需求:h5中所有的去支付调起native的支付页)

需要通过WebView自定义的WebViewClient,复写shouldOverrideUrlLoading(WebView view, String url)方法:

1、

mWebView.setWebViewClient(mWebViewClient);

2、复写方法:

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

if(ActivityRedirectManager.hasNative(url)) {

ActivityRedirectManager.redirect(getActivity(), url);//跳转到native

} else {

view.loadUrl(url);//调用webview本身的loadUrl方法

}

return true;

}

3、

/**

* 跳转操作

* @param context

* @param url

*/

public static void redirect(Context context, String url) {

// 去空格,运营有时候会把空格配进来

url = url.trim();

if(url.startsWith(URLConStant.URL_PAY)) {

Uri uri = getParamsByUrl(url);

if(uri == null) {

return;

}

String orderId = uri.getQueryParameter("order_id");

String amount = uri.getQueryParameter("amount");

if(TextUtils.isEmpty(orderId)) {

// return;

}

if(TextUtils.isEmpty(amount)) {

// return;

}

OrderSuccessActivity.start(context, orderId, amount);

} // end 支付页

}

4、

/**

* 通过url判断是否有native页

* @param url

* @return

*/

public static boolean hasNative(String url) {

if(TextUtils.isEmpty(url)) {

return false;

}

url = url.trim();

return url.startsWith(URLConStant.URL_PAY)

}

错误不足之处或相关建议欢迎大家评论指出,谢谢!如果觉得内容可以的话麻烦喜欢(♥)一下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值