【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)
 }

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容