收藏
回答

如何判断是小程序从前端转到后台,还是微信从前端转到后台?

无论是微信小程序转到后台都会出发onHide ,转到前端都会出发onShow。

我现在的问题是:

  1. 扫码进来,在onLaunch第二次扫码进来则不会出发。

  2. 扫码进来,在onShow的话,微信不关闭小程序,按手机home间回到手机桌面,然后点击微信回到小程序页面会再次触发,场景码也不变。

  3. 我无法判断是否是扫码进来的。

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

5 个回答

  • Code Weaver
    Code Weaver
    2019-10-09

    谢邀:

    1. onLaunch指的是 第一次进来冷启动会触发一次,热启动不会触发,

    2. 扫码进来后,home回到桌面,再进去会触发onShow 但是因为是热启动,场景值不会变

    3. 是否是扫码进来只在扫码后判断场景值,回桌面5分钟内再回到小程序都是热启动。


    以上回答建议看下小程序的 运行机制(https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/operating-mechanism.html

    2019-10-09
    有用 1
    回复 7
    • 伟鹏
      伟鹏
      2019-10-09
      因为我扫码进来会带有参数,会有逻辑处理,那应该写在哪里
      2019-10-09
      回复
    • Code Weaver
      Code Weaver
      2019-10-09回复伟鹏
      在桌面回到小程序后 你需要有逻辑处理?在onShow里操作就好了。场景值拿到后setData放到data下。进去后 onShow里拿data里的场景值的参数做判断就好了
      2019-10-09
      回复
    • 伟鹏
      伟鹏
      2019-10-14回复Code Weaver
      桌面回到小程序不需要逻辑处理,扫码进来需要逻辑处理
      2019-10-14
      回复
    • 伟鹏
      伟鹏
      2019-10-14回复Code Weaver
      假如我扫码进来在onshow获取到场景值是1011,然后微信切回桌面再从桌面回到微信在onshow获取到的场景值依旧是1011,那怎么判断是扫码进来的还是从桌面会到微信小程序的。
      2019-10-14
      回复
    • Code Weaver
      Code Weaver
      2019-10-14回复伟鹏
      肯定是扫码吖,因为还在保活机制内(热启动)。你等个十几分钟从桌面进去 是冷启动你就会发现不是1011了
      2019-10-14
      回复
    查看更多(2)
  • 知足常乐
    知足常乐
    2020-10-26

    哥们, 我的问题和你一样, 每个二维码携带的参数右不一样,需要在app.js onshow 获取参数 options.query.path, options.query.id 无法判断用户是否是扫码进来, 还是后台热启动进来, 如果能判断就好了, 热启动(后台启动)不处理, 扫码进来就处理, 管他二维码携带的参数是不是重复的id, 请问你解决了吗, 如果解决了, 是怎么解决的, 能告知一下吗

    2020-10-26
    有用
    回复
  • 卢霄霄
    卢霄霄
    2019-10-09

    你想判断用户扫码了几次吗?

    2019-10-09
    有用
    回复 25
    • 伟鹏
      伟鹏
      2019-10-09
      不是,只是想扫码进来触发一个请求
      2019-10-09
      回复
    • 卢霄霄
      卢霄霄
      2019-10-09回复伟鹏
      那用onShow,然后自己做个标志就行啦,如果onShow的时候参数没变,只发一次请求
      2019-10-09
      回复
    • 无言
      无言
      2019-10-09回复卢霄霄
      同意
      2019-10-09
      回复
    • 伟鹏
      伟鹏
      2019-10-14回复卢霄霄
      在不关闭小程序的情况下,微信切到后台再切回微信,获得的参数和场景值和上一次扫码的一样
      2019-10-14
      回复
    • 卢霄霄
      卢霄霄
      2019-10-14回复伟鹏
      比如,我二维码有个参数 id,然后我在onShow里就记录这个id,再进来的时候如果参数没变 就不处理了
      2019-10-14
      回复
    查看更多(20)
  • 污昂ᰔᩚ王࿐
    污昂ᰔᩚ王࿐
    2019-10-09

    场景值 了解一下?

    2019-10-09
    有用
    回复 3
    • 伟鹏
      伟鹏
      2019-10-09
      了解了,请看第二条
      2019-10-09
      回复
    • 污昂ᰔᩚ王࿐
      污昂ᰔᩚ王࿐
      2019-10-09回复伟鹏
      扫码进来也会触发onShow 可以在里面打印一下有没有参数
      2019-10-09
      回复
    • 伟鹏
      伟鹏
      2019-10-14回复污昂ᰔᩚ王࿐
      我没开发之前也觉得很简单,做过就知道了
      2019-10-14
      回复
  • 平凡的开发者
    平凡的开发者
    2019-10-09

    为何无法判断是扫码进来的,扫码进来的话 options 里面会有 scene 字段吧

    2019-10-09
    有用
    回复 2
    • 伟鹏
      伟鹏
      2019-10-09
      请看第二条
      2019-10-09
      回复
    • 平凡的开发者
      平凡的开发者
      2019-10-09回复伟鹏
      所以个人建议把第三条写在第二条里呢,因为是在第二条的前提下发生的(捂脸哭
      2019-10-09
      回复
登录 后发表内容
问题标签