前端返回时直接关闭页面实现

慢慢地,满满的~ / 2023-05-30 / 原文

任务场景是,企业微信环境下,通过鉴权页面跳转到目标页面,但是目标页面返回总是跳回到鉴权页面,然后又直接跳到目标页面了,导致页面关闭异常。

提供解决方式:监听页面返回事件,在手动关闭页面。

前端用的环境是vue。

// 挂载时
mounted () {
  history.pushState(null, null, document.URL)
  window.addEventListener('popstate', this.backChange, false)
},
// 销毁前
beforeUnmount () {
  window.removeEventListener('popstate', this.backChange, false)
},
methods: {
  // 调用方法
  backChange (e) {
    // 页面返回前做一些操作
    window.wx && window.wx.closeWindow && window.wx.closeWindow() // 企业微信环境下,页面关闭,注:wx对象需要引入企业微信的js文件  // ios、安卓都可

    // window.close && window.close() // ios可以,安卓失效
  }
}