美文网首页
Android中WebView调起微信H5支付---踩过的坑

Android中WebView调起微信H5支付---踩过的坑

作者: Up锐 | 来源:发表于2017-11-30 15:21 被阅读0次

应产品需求,需要在webview中通过H5页面唤起native的微信支付![怒掀桌子表情]

其实很多坑前辈们都踩过了,我这里将代码粘出来,记录一下自己的坑,看看有没有相同经历的小伙伴

...
       @Override
       public boolean shouldOverrideUrlLoading(final WebView view, String url) {
if (url.startsWith("weixin://wap/pay?") || url.startsWith("http://weixin/wap/pay") ) {
               try {
                   startActivity(new Intent("android.intent.action.VIEW", Uri.parse(url)));
                   return true;
               } catch (Exception e) {
                   new CancelOrOkDialog(H5PayActivity.this, getString(R.string.h5_pay_no_pay_app)) {
                       @Override
                       public void ok() {
                           Intent intent = new Intent(H5PayActivity.this, MainActivity.class);
                           intent.putExtra(Constants.SELECTTAB, 0);
                           startActivity(intent);
                       }
                   };
               }
           } else {
               Map<String, String> extraHeaders = new HashMap<String, String>();
               extraHeaders.put("Referer", H5Accessor.BASE_H5URL);
               if (url.startsWith("alipays:") || url.startsWith("alipay")) {
                   view.loadUrl(url);
               } else {
                   view.loadUrl(url, extraHeaders);
               }
           }
           // ------- 处理结束 -------
           if (!(url.startsWith("http") || url.startsWith("https"))) {
               return true;
           }
           return true;

}
...
主要想说的是
extraHeaders.put("Referer", H5Accessor.BASE_H5URL);

这里放的是域名,一定要和自己的域名相对应,否则极易出现问题

[掀桌表情]ios不需要这样做......

相关文章

网友评论

      本文标题:Android中WebView调起微信H5支付---踩过的坑

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