美文网首页
56.关闭支付宝页面

56.关闭支付宝页面

作者: yaoyao妖妖 | 来源:发表于2019-03-13 15:14 被阅读0次

由于支付宝返回的payurl太长,无法作为url来生成二维码,所以需要增加一个前端重定向到一个空白页,但是在获取到支付宝的payurl的时候需要将这个空白页面关闭,尝试了很多种办法,最后在支付宝H5的开发文档里面找到这个方法:
基础原理是:在重新回到这个空白页的时候关闭当前页面

document.addEventListener('resume', function(e) {
 console.log("resumed");
}, false);

尝试了其他的办法,安卓可以,但是苹果有问题,基础逻辑是苹果手机使用回调,安卓手机使用延时关闭空白页面

   load (callback) {
     var u = navigator.userAgent, app = navigator.appVersion
     var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1 // g
     var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) // ios终端
     if (isAndroid) {
       console.log('这是安卓手机')
       this.redicAndroid()
     }
     if (isIOS) {
       console.log('这是苹果手机,苹果手机需要回调')
       callback()
     }
   },
   redic (callback) {
     AlipayJSBridge.call('popWindow')
   },
   redicAndroid () {
     console.log('woredicAndroid')
     setTimeout(() => {
       AlipayJSBridge.call('popWindow')
     }, 2000)
   },

在这里需要注意的是我还尝试了使用

window.location.replace(this.payUrl)来替代 
window.location.href = this.payUrl

但是最后发现,因为支付宝返回的payurl是alipay:开头的,导致replace这个方式并没有实现我想替换调当前界面的目地,(会打开一个新界面)但是一般的http是可以实现的。

相关文章

网友评论

      本文标题:56.关闭支付宝页面

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