APP内嵌H5与APP进行事件交互

需求:APP内嵌H5商城,支付功能要使用APP来调取微信进行支付。

详细描述:
用户在H5商城浏览到喜欢的商品时,点击商品进行下单,H5请求拿到支付需要的参数,H5请求APP暴露的方法并提交支付参数,APP发起支付,收到支付结果返回给H5,H5做支付结果展示。

实现逻辑详见代码:

// 通过UA查询到要发起支付的设备是安卓还是ios,为后续调用不同的方法做准备
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1;
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);

// 使用函数简单封装一下调用APP支付的逻辑
function appPay(params) {
	// 前端与app交互
    if (isAndroid) {
    	// 格式:window.Android开发人员定义的对象名.Android开发人员定义的方法名(这里是给android传值的地方);
    	// 参数一般会要求传递json string格式,使用JSON.stringify()将json格式数据转换为json string。
        window.android.wechatPay()
    }
    if (isiOS) {
	    // window.webkit.ios开发人员定义的方法名.postMessage(这里是给ios传值的地方);
	    // 参数一般会要求传递json string格式,使用JSON.stringify()将json格式数据转换为json string。
        window.webkit.wechatPay.postMessage(JSON.stringify(payParams));
    }
    // APP与前端交互
    window.payResult = function (data) {
    	// 因为app可以调用前端挂载在window下面的方法。所以前端可以在window对象挂载一个js函数,这样这个函数就能被app调用。
        if (data.errCode == 0) {
            Toast('支付成功');
        } else {
            Toast('支付失败');
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值