收藏
回答

扫码进小程序,场景值为1011,微信切到桌面后再回到微信场景值还是1011

API/组件名称 终端类型 微信版本 基础库版本
onShow 客户端 6.6.1 1.9.1


使用场景中的问题:

  1. 扫码进入小程序,获得场景值与参数,例如:scene为1011

  2. 判断二维码场景值为1011会执行 wx.showModal,此时关闭wx.showModal

  3. 微信切到桌面,然后再回到微信小程序界面,此时场景值依然为1011,依然会执行 wx.showModal


需求:

  微信切到桌面,然后再回到微信小程序界面不执行 wx.showModal,但下次扫码时判断scene为1011再执行wx.showModal


最后一次编辑于  2018-01-16
回答关注问题邀请回答
收藏

3 个回答

  • 还得是你呀
    还得是你呀
    2018-01-16
    1. 扫码进入小程序onShowscene1011并存入全局变量,进入首页设置全局变量this.globalData.bind = true

    2. 首页onShow时判断:全局的scene1011bindtrue,执行wx.showModal

    3. 关闭wx.showModal时,设置全局变量this.globalData.bind = false

    这样在小程序切到桌面后再回到小程序时,bindfalse,不会执行wx.showModal,扫码进入时会进入onLoad周期,设置this.globalData.bind = true,能够满足需求。


    2018-01-16
    有用
    回复 5
    • 东流
      东流
      2018-05-17
      app.onshow,你这个只能判定一个页面
      2018-05-17
      回复
    • 还得是你呀
      还得是你呀
      2018-07-10回复东流

      恩,对,就一个页面,没有别的入口

      2018-07-10
      回复
    • 米饭
      米饭
      2020-05-06
      我觉得这个答案已经完美地解决问题了。用户扫码进来后,showModal被执行,globalData.bind设为true。用户从其它地方切回来,虽然场景值还是1011,但判断globalData.bind是true,不showModal了。当用户再次扫码进来的时候,小程序会重新加载,globalData.bind也被清空了,showModal能够执行。
      2020-05-06
      1
      回复
    • 米饭
      米饭
      2020-05-06回复米饭
      事实证明,再次扫码进来,globalData.bind不会被清空。。。已炸
      2020-05-06
      回复
    • 米饭
      米饭
      2020-05-06回复米饭
      只能将 bind 放在扫码后的落地页了。可以肯定,扫码后,落地页会重新加载(从桌面切回不会重新加载)。
      2020-05-06
      回复
  • 还得是你呀
    还得是你呀
    2018-01-16

    我获取scene是在onShow里面,因为每次扫码进来都要判断,但是从桌面回到小程序的时候,生命周期仍然是onShow,而且场景值依然是1011

    2018-01-16
    有用
    回复
  • 连胜
    连胜
    2018-01-16

    你获取scene参数,是在app的onLaunch里面,还是在onShow里面?

    你这场景,建议在app的onShow里面去获取~

    2018-01-16
    有用
    回复
登录 后发表内容