vue微信公众号H5 物理返回问题(百分百有效,本人项目已上线)

路由监听

  watch: {
    $route: {
      handler(val, oldval) {
        if(val.path=="/"){
           this.gobackStaus = true;
           this.setBack();
        }
        if(oldval.path!="/"){
          this.gobackStaus = false;
          window.removeEventListener(
            "popstate",
            function (event) {
              event.preventDefault();
            },
            false
          );
           setTimeout(()=>{
             this.gobackStaus = true;
           },500)          
        }
      },
      // 深度观察监听
      deep: true,
    },
  }, 

返回函数

  methods:{
    setBack() {
      if (window.history && window.history.pushState) {
        history.pushState(null, null, document.URL);
        window.addEventListener("popstate", this.goBack, false);
        console.log("进入返回设置");
      }
    },
    // 返回按钮处理函数
    goBack() {
      if(this.$route.path=="/"&&this.gobackStaus == true){
            this.$router.push({path:"/close"})
      }
    },    
  } 
  // close.vue  做一个空界面
  // 在初始化时 就会触发-关闭浏览器
      beforeCreate(){
         wx.closeWindow()
         window.location.href = "about:blank";
    }

界面响应

mounted() {
  this.setBack();
}

界面销毁

  destoryed() {
    window.removeEventListener("popstate", this.goBack, false);
  },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值