wx.requestPayment({ 'timeStamp' : pay.timeStamp, 'nonceStr' : pay.nonceStr, 'package' : pay.package, 'signType' : pay.signType, 'paySign' : pay.paySign, 'success' : function (res) {
wx.reLaunch({ url: '/pages/success/success'
}, 'fail' : function (res) { console.log(res); _this.setData({ CMO: true }); wx.showToast({ title: '支付失败' , icon: 'none' , duration: 2000 }); } }) |
iOS正常,Android报错【 fail can not invoke relaunch in background】
哎,我这里relaunch报错,但是这个页面支付完成后只能用relaunch
2019年了,这个问题还是存在 ,我们这边目前的解决办法是使用setTimeout设置一定时间间隔后再跳转,是可以成功的 ,还有一种方法是支付成功后页面再弹出一个wx.showModal来提示用户支付成功,用户点击确定以后再跳转,也是可以成功的。
哈哈哈哈,可能是系统底层的问题吧,具体的我也不太懂了。
可惜啊,我不姓张,也不叫小龙。
要不然这叫个事儿吗哈哈哈哈。
遇到同样问题 请问解决了吗
还没有解决。目前只能用 wx.redirectTo
昨天看到的, 调用支付就相当于小程序进入后台了 所以这块目前无解啊
我觉得这块还是有问题。因为wx.relaunch方法是在微信支付的回调里的,也就是说【微信支付】的动作已经完成了。执行success或者fail方法的时候,为什么还是进入后台的状态呢?不合理。而且ios没有问题
的确是这样的,但是有人添加个延迟动作 ,这样android也可以跳转了 就是延迟那几秒内 支付完成跳转回到了小程序前台 所以reLaunch又生效了,不过微信官方这个解释有点打脸,就像你说的 IOS是没有问题的 实在不明白为什么这么设计啊 小程序BUG还是不少的
用wx.redirectTo吧,安卓似乎大部分情况下不可以调用relaunch
人工置顶
人工置顶
人工置顶
hello 有人吗???