收藏
回答

在一个小程序里,怎么区分是热启动进入的页面还是从当前小程序内别的页面跳转过来的?

在一个小程序里,怎么区分是热启动进入的页面还是从当前小程序内别的页面跳转过来的? 貌似没有这两种情况的场景值,该如何区分呢

最后一次编辑于  2023-05-22
回答关注问题邀请回答
收藏

1 个回答

  • 微盟
    微盟
    2023-05-22
    1. 热启动进入的页面:当小程序启动时,会先打开一个初始页面,这个页面可以被认为是热启动进入的页面。可以在该页面的生命周期函数 onLoad 中进行相应的处理。
    Page({
      onLoad: function(options) {
        // options参数为空,表示热启动进入的页面
        console.log('热启动进入页面');
      },
    });
    

    2. 从当前小程序内其他页面跳转过来的页面:当从当前小程序内的其他页面跳转到目标页面时,可以在目标页面的生命周期函数 onShow 中进行判断。可以通过判断页面的来源路径或传递的参数来确定是否是从其他页面跳转过来的。

    Page({
      onShow: function(options) {
        if (options && options.from === 'otherPage') {
          console.log('从其他页面跳转过来的页面');
        }
      },
    });
    


    2023-05-22
    有用
    回复 3
    • 小糕
      小糕
      2023-05-23
      上个页面传过来的值只能在onLoad里拿,你第二种方式有问题,onShow里只能通过页面栈拿。
      2023-05-23
      回复
    • 小糕
      小糕
      2023-05-23
      你这第一种方式也不行啊,从页面跳转过来 onLoad只执行一次,热启动进来是不执行onLoad,从其他页面返回也是不执行onload
      2023-05-23
      回复
    • 张勇
      张勇
      2023-12-21
      不行,如果在app.js判断热启动还是前后台切换,是判断不了的。
      2023-12-21
      回复
登录 后发表内容