在vue中如何监听手机物理返回键,移动端,app

1,使用原理
利用history 和 浏览器 刷新popstate状态 去实现
2,判断浏览器是否支持popstate
什么是popstate请点击此链接查看

//那个界面使用,就把代码写到那个界面
mounted(){
  // 如果支持 popstate 一般移动端都支持了
  if (window.history && window.history.pushState) {
    // 往历史记录里面添加一条新的当前页面的url
    history.pushState(null, null, document.URL);
    // 给 popstate 绑定一个方法 监听页面刷新
    window.addEventListener('popstate', this.backChange, false);//false阻止默认事件
  }
},

3,记得在页面销毁时候,取消默认事件,否则vue路由也会被监听

destroyed(){
  window.removeEventListener('popstate', this.wulifanhui, false);//false阻止默认事件
},

4,下面就可以写自己的物理返回键的函数了

methods:{
  wulifanhui() {
      const that = this;
      //顺便带上
      //微信关闭页面 : wx.closeWindow();
      //h5返回上一级
      //以下方法仅供参考1、返回上一页,不刷新history.html
      //window.history.go(-1); 
     //javascript:window.history.go(-1)
     //2、返回上一页并刷新页面
 //javascript:location.replace(this.href);event.returnValue=false;
//3、返回上一页并刷新
//self.location=document.referrer
//4、返回上一页面刷新的是自己
//javascript:document.parentWindow.location.reload();
      console.log("监听到了");
//vue返回上一级
//this.$router.go(-1)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值