评论

微信h5支付使用iframe唤起原生微信支付的方法

微信h5支付是在浏览器或者webview中打开一条腾讯财付通的链接,然后使用weixin://唤起微信客户端执行支付。


这条链接里面的js代码默认如下:


我们从源码可以看出来,微信使用了top.location.href = 'xxx',兼容了在iframe中唤醒微信支付的场景

但是最新的ios12.4,在webview中屏蔽了第三方的iframe操作顶层页面的权限,官方说是基于安全性考虑。

我们查看iframe的相关说明,我们发现可以使用sandbox这条属性。

具体使用如下:

const iframe = document.createElement('iframe')
iframe.style.display = 'none'
iframe.setAttribute('src', url)
iframe.setAttribute('sandbox', 'allow-top-navigation allow-scripts')
document.body.appendChild(iframe)

亲测可用。

最后一次编辑于  07-29  
点赞 0
收藏
评论