WebViewH5跳轉微信支付、支付寶、QQ錢包WAP

阿策~發表於2017-09-05

      最新小菜在用研究藉助 WebView h5 跳轉 微信和支付寶支付頁面,研究了挺久,一直沒有找到合適的判斷。很簡單的兩小段程式碼分享一下,希望可以幫助需要的朋友。

      目前小菜是藉助的 TBS X5 瀏覽器核心的 WebView,原理是一樣的。主要是對url內容的判斷,以下是關鍵程式碼部分,大家一看便了解:

      可以支援的包括:微信掃碼、微信–手機快捷支付、支付寶掃碼、支付寶–手機快捷支付、QQ掃碼、QQ錢包(WAP)

mWebView.setWebViewClient(new WebViewClient() {

    @Override

    public boolean shouldOverrideUrlLoading(WebView view, String url) {

    final Activity context = AdvertX5Activity.this;

    // ===========呼叫微信支付頁面===========

    // 如下方案可在非微信內部WebView的H5頁面中調出微信支付

    if(url.startsWith(“weixin://wap/pay?”) || url.startsWith(“weixin”)|| url.startsWith(“wechat”)) {

        try{

             context.startActivity(newIntent(“android.intent.action.VIEW”, Uri.parse(url)));

        }catch(Exception e) {

             e.printStackTrace();

        }

        return true;

    }

    // ===========呼叫QQ錢包頁面(mqqapi測試效果作用較大)===========

    if(url.startsWith(“mqqapi”) || url.startsWith(“mqqwpa”)) {

        try{

            context.startActivity(newIntent(“android.intent.action.VIEW”, Uri.parse(url)));

        }catch(Exception e) {

            e.printStackTrace();

        }

        return true;

    }

    // ===========呼叫支付寶支付頁面===========

    // ——  對alipays:相關的scheme處理 ——-

    if(url.startsWith(“alipays:”) || url.startsWith(“alipay”)) {

    try {

        context.startActivity(new Intent(“android.intent.action.VIEW”, Uri.parse(url)));

    } catch (Exception e) {

        new android.support.v7.app.AlertDialog.Builder(context)

.setMessage(“未檢測到支付寶客戶端,請安裝後重試。”)

.setPositiveButton(“立即安裝”, new DialogInterface.OnClickListener() {

    @Override

    public void onClick(DialogInterface dialog, int which) {

        Uri alipayUrl = Uri.parse(“https://d.alipay.com”);

        context.startActivity(new Intent(“android.intent.action.VIEW”, alipayUrl));

    }

}).setNegativeButton(“取消”, null).show();

}

return true;

}

    // ——- 處理結束 ——-

    if (!(url.startsWith(“http”) || url.startsWith(“https”))){   return true;    }

    return false;

}

    @Override

    public void onPageStarted(WebView webView, String s, Bitmap bitmap) {

        super.onPageStarted(webView, s, bitmap);

    }

    @Override

    public void onPageFinished(WebView view, String url) {

        super.onPageFinished(view, url);

    }

});

1240
QQ掃碼
1240
微信掃碼
1240
支付寶掃碼
1240
微信-手機快捷支付
1240
QQ 錢包


相關文章