小程序webView初始化销毁页面

解决思路:先把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)
    }
}

你可能感兴趣的:(小程序)