美文网首页程序员程序猿阵线联盟-汇总各类技术干货
WebView H5 跳转微信支付、支付宝、QQ钱包WAP

WebView H5 跳转微信支付、支付宝、QQ钱包WAP

作者: 阿策神奇 | 来源:发表于2017-09-05 22:37 被阅读1300次

          最新小菜在用研究借助 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);

        }

    });

    QQ扫码 微信扫码 支付宝扫码 微信-手机快捷支付 QQ 钱包

    相关文章

      网友评论

        本文标题:WebView H5 跳转微信支付、支付宝、QQ钱包WAP

        本文链接:https://www.haomeiwen.com/subject/apwpjxtx.html