wx.offAppHide无法取消监听事件
发布于 6 年前 作者 na61 8214 次浏览 来自 问答

在App.js的onLaunch方法中写了两个方法,一个wx.onAppShow,一个wx.onAppHide,在wx.onAppShow的监听方法中执行了wx.offAppHide方法

按照预想,进行前后台切换,会先触发一次小程序切后台事件,然后再触发小程序切前台事件,这个时候会触发wx.offAppHide方法取消掉对切后台事件的监听,所以后面切后台并不会进行触发回调事件

//app.js

App({

onLaunch: function() {

    wx.onAppShow(function(e){

        if (e.scene==1001){

            wx.offAppHide(function(){

            

            })

        }

    })

    wx.onAppHide(function(){

        console.log(‘111’);

    })

   }

})

2 回复

你好,麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)

我这里测试没问题。

首先,你的代码有 bug,在你首次打开的时候,wx.onAppShow 的回调函数会晚于 wx.onAppHide,所以你的 wx.onAppHide 压根是没用的。

其次,你要注意 e.scene 是否真的是 1001。

回到顶部