56.关闭支付宝页面

2019-03-13  本文已影响0人  yaoyao妖妖

由于支付宝返回的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是可以实现的。

上一篇 下一篇

猜你喜欢

热点阅读