问题梳理
问题出现的场景
这个问题出现的场景比较苛刻:
1.手机端打开
2.再微信浏览器里打开(再微信里打开url路径就叫做微信浏览器)
3.再微信浏览器打开页面的时候支付才会出现这个问题
4.并且还得是配置了路由重定向才会触发这个问题
如何排查问题
需要保证,支付页是否是在微信哪里注册过,审核通过了才可以
如何解决问题?
这个问题主要是因为当前的url没有被路由重定向,所以他识别不到这个页面所以才会遇见这个问题
如何解决,获取session元素直接更改当前url就可以解决当前问题
如何在今后都不遇见这个问题
我封装了一个方法
navigateTo
function navigateTo(url) {
return new Promise((resolve, reject) => {
if (url) {
if (isHttpUrl(url)) {
resolve()
location.href = url
} else {
Taro.navigateTo({
url: url
})
.catch(e => {
Taro.switchTab({ url: url })
})
.then(() => {
resolve()
})
}
} else {
reject(url)
}
})
}
// 这个方法是检测是否为http开头
const isHttpUrl = url => {
let isTrue = url.startsWith('http')
return isTrue
}