解决思路:先把webviewUrl设为空,销毁当前webview,然后再把webviewUrl设为当前值
场景:点击web-view跳转到其他页面回退时进行webview初始化重新加载解决思路:1.在小程序回退时先把webview设置为空销毁,定时器500ms后设置新的url再进行回退操作(
有个问题:回退新的webview底部会有遮挡
)2.在小程序回退时先把webview设置为空销毁,定义个新字段赋值新url,然后回退,返回上一页后再进行webviewUrl赋值(
这个推荐,目前没发现其他问题
)
举例:
a.js:
onLoad(options) {
this.handleUrl(options.codePath || '')
},
onShow() {
if (this.newUrl) {
this.handleUrl(this.newUrl || '')
}
},
handleUrl(codePath) {
codePath = decodeURIComponent(codePath || '')
this.setData({
url: `${path}`
})
}
b.js:
goBack() {
let url = app.globalData.enterWebviewUrl
if (url) {
let pages = getCurrentPages();
const prevPage = pages[pages.length - 2];
// 重置清空web-view
prevPage.options.codePath = ``
prevPage.onLoad(prevPage.options)
prevPage.newUrl = url
setTimeout(() => {
wx.navigateBack({
delta: 1
})
}, 100)
}
}