WebView攔截H5的Url卵贱,跳轉(zhuǎn)到native(需求:h5中所有的去支付調(diào)起native的支付頁)
需要通過WebView自定義的WebViewClient,復(fù)寫shouldOverrideUrlLoading(WebView view, String url)方法:
1檀葛、
mWebView.setWebViewClient(mWebViewClient);
2育瓜、復(fù)寫方法:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(ActivityRedirectManager.hasNative(url)) {
ActivityRedirectManager.redirect(getActivity(), url);//跳轉(zhuǎn)到native
} else {
view.loadUrl(url);//調(diào)用webview本身的loadUrl方法
}
return true;
}
3、
/**
* 跳轉(zhuǎn)操作
* @param context
* @param url
*/
public static void redirect(Context context, String url) {
// 去空格榕栏,運(yùn)營(yíng)有時(shí)候會(huì)把空格配進(jìn)來
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)
}
錯(cuò)誤不足之處或相關(guān)建議歡迎大家評(píng)論指出芽丹,謝謝将塑!如果覺得內(nèi)容可以的話麻煩喜歡(?)一下