报告一个onShow方法options参数scene值BUG
发布于 8 年前 作者 gzhong 13220 次浏览 来自 官方Issues

从微信单人聊天界面 进入小程序 onShow方法options参数scene值是1007;此时锁屏 再解锁进入小程序options参数依然为1007;

所以onShow无法区分 是从单人聊天界面进入触发,还是解锁后触发;

期待解锁重新进入小程序 触发onshow有专用的scene值,或者清空options内原有scene值;

3 回复

这不是bug吧。在保活的时候。值肯定不变的。

楼上说的是正确的,在保活的时候。值肯定不变的。白话解释就是说,一般5分钟不会杀死小程序,所以5分钟内onShow方法options参数scene值应该是不会改变的。

可以进行一些处理,进入后

onShow(options){

    this.options = options

    // 优先检测app.globalData.scene

    if (app.globalData && app.globalData.hasOwnProperty(‘scene’)) {

        if (app.globalData.scene == -1007) {

            console.log(‘锁屏后进入’)

        }

        if (app.globalData && app.globalData.userState == ‘B’) {

            console.log(‘用户状态不为A’)

        }

    }else{

        if (this.options.scene == 1007) {

            console.log(‘单人聊天界面进入’)

        }

        if (app.globalData && app.globalData.userState == ‘B’) {

            console.log(‘用户状态不为A’)

        }

        // 模拟用户状态改变,原为A

        app.globalData.userState = ‘B’

    }

},

onHide(){

    // 锁屏或切后台,设置app.globalData.scene为-1007

    if (this.options.scene == 1007) {

        app.globalData.scene = -1007

    }

}

回到顶部