收藏
回答

分享卡片热启动和前后台切换场景下app.onShow和page.onload调用问题?

场景1: 小程序在冷启动后,如果没有被销毁,发现再次从分享卡片进入时,会调用app.onShow和页面的onload生命周期方法

场景2:小程序在冷启动后,如果没有被销毁,此时页面前后台切换,这个时候会调用app.onShow,但是不会调用页面的onload方法

我想问下,这两种场景,小程序内部是怎么判断该不该重新创建页面,重新调用页面的onload方法?

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

2 个回答

  • showms
    showms
    2023-01-29

    从分享卡片进入小程序,应该是清空了页面栈,所以会重新执行onload方法,你可以把页面栈打印出来看下,然后如果页面栈里面有这个页面,就只会执行onshow方法

    2023-01-29
    有用
    回复 3
    • chdtyzhy
      chdtyzhy
      01-23
      微信是怎么判断需要清空页面栈还是一次单纯的前后台切换
      01-23
      回复
    • chdtyzhy
      chdtyzhy
      01-23
      还有就是如果在app的onshow里面判断,怎么判断?
      01-23
      回复
    • chdtyzhy
      chdtyzhy
      01-23
      那如果重复点击分享卡片进入呢,那还不是区分不出来
      01-23
      回复
  • Jianbo
    Jianbo
    2023-01-28

    仔细研究下这个图,可能有帮助:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html

    2023-01-28
    有用
    回复 1
    • chdtyzhy
      chdtyzhy
      01-23
      没什么用呀,前后台切换和分享都会调用app的onshow
      01-23
      回复
登录 后发表内容