收藏
回答

从搜索热启动进入小程序,重置了我的登录态,getStorage()无效,必现bug

问题是这样的:

登录成功后我会通过setStorage()将用户的登录信息放入缓存

然后在app.js的onLaunch()中getStorage()来判断用户是否已经登陆过

 wx.getStorage({
      key: 'loginInfo',
      success: function(res) {
        if (that.isHasLoginInfoCallback) {
          that.isHasLoginInfoCallback(res);
        }
      },
      fail: function(res) {
        
      }
    })


然后在首页我会通过一个标志位来确定用户有没有登录

当我成功登录后,再次从最近使用的小程序打开、重启微信打开小程序都没有问题

但是在我成功登录后,再次从搜索小程序列表打开时,我的登录状态不见了

也就是说,在从搜索栏热启动小程序的时候,会刷新我的小程序的状态,如果从搜索进入算热启动,那么为什么我在home页保存的标志位会被重置,如果算是冷启动,那么为什么它不走onLaunch()和onLoad(),也不去getStorage()读取缓存呢?

必现的问题,我也不能确定这是否是bug,但是你们能否告诉我从搜索栏进入有什么特别的流程吗?

而且我这个也特别不好调试,想要调试就得发新版,开发版和体验版都无法从搜索栏进入,我目前比较困扰,找不到问题原因,希望你们能帮忙解决一下。

回答关注问题邀请回答
收藏

2 个回答

  • 侠客有情剑无情
    侠客有情剑无情
    2021-01-13

    请问下怎么解决的呢?

    我是在App.js 调用的onShow。

    然后在Page页面里既使用了onLoad也使用了onShow调用同一个判断是否登录的方法。

    以防出现这种问题。

    请问楼主还有什么好的解决方案吗。

    2021-01-13
    有用
    回复 1
    • pengboboer~😉
      pengboboer~😉
      2021-01-13
      后来就是在index页面的onShow方法去getStorage()就可以了,后来就再也没出现过这种问题了。
      2021-01-13
      回复
  • 是小白啊
    是小白啊
    2019-12-30

    麻烦提供能复现问题的代码片段https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-12-30
    有用
    回复 1
    • pengboboer~😉
      pengboboer~😉
      2019-12-31
      您好,我想问一下,如果小程序在后台,我从搜索结果页重新进入小程序,比如场景值是1005、1006的情况,小程序的生命周期是怎样的,为何会重置home页的data数据
      2019-12-31
      回复
登录 后发表内容
问题标签