如何解决小程序中webview页面多层history返回问题?
我微信小程序使用webview 跳转到H5页面 ,在到H5页面1静默授权,使用window.location.href = webUrl 获取到code,然后我点击回退按钮,会返回至页面1而不会返回至小程序的页面,请问这该如何解决,我试过监听新老路由变化,来调wx JDk来跳转,但是 发现页面1跳转到页面2 老路由的name是null参数也是空值, 然后我在到页面2回退到页面1发现 老路由的参数和页面1跳转到页面2 是一致的无法判断,
下面是网上搜索到的一种方法,但是我有些疑惑
比如说我从页面2在跳转到页面3 然后页面3回退到页面2他是不是也会执行wx.miniProgram.navigateBack();这个呢
window.addEventListener('popstate', (event) => {
console.log('656+')
wx.miniProgram.navigateBack()
})
if (!cache.getSession('Code')) {
// 1 在小程序里 2 在微信环境 3 不在微信环境
if (this.layer.isEnv() != 3 && !query.code && !query.orderId) {
let abc = encodeURIComponent(window.location.href)
console.log(abc)
this.req.wxCode({
appId: query.appId
}, res => {
if (res.appId) {
let webUrl = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + res.appId +
'&redirect_uri=' + abc + '&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect'
console.log(webUrl, cache.getSession('Code'))
console.log(window.location.href = webUrl)
window.location.href = webUrl
cache.setSession('one', '1')
}
})
}
} else {
console.log('456')
history.pushState({
page: 1
}, null, window.location.href)
}