收藏
回答

小程序二维码参数解析问题


我在生成的小程序码携带了参数,并且在App.js的onshow调用了解析的函数

decodeURIComponent()并且获取到了参数。

第一步,如果是用户第一次扫带参数的二维码,程序打开进入了正常的App.js的onshow回调,就能读取并根据获取到的参数设置程序所用到的值,程序正常。

第二步,用户就把小程序就放在小程序任务栏列表中,用户再扫描不同参数的二维码,这时App.js onshow的回调就不生效了,这是为什么?不生效就导致没有执行参数的解析和赋值操作,所以程序读取到的还是之前的参数,新的参数就没有用到。这个问题有什么解决办法吗?

第三步,删除小程序任务栏中的程序,再去扫码,程序能够进入App.js onShow回调,能进入回调程序就能正常设置。这是不是BUG?

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

5 个回答

  • 黄思程
    黄思程
    2018-06-06

    在onShow打个log看能否打出来?

    也请提供下两个二维码,我看下能否重现

    2018-06-06
    有用
    回复 4
    • Layen
      Layen
      2018-06-07




      这是两个不同参数的二维码,如果有进onShow,推荐会显示号码的。你可以按照我步骤测试下。

      2018-06-07
      回复
    • Layen
      Layen
      2018-06-07

      推荐人哪里会显示号码的

      2018-06-07
      回复
    • Layen
      Layen
      2018-06-08

      想问下 扫码进入二级页面是APP.js先执行还是二级页面先执行,我看到的调试信息是二级页面先打印出信息了,是本来就是这种逻辑的么?

      2018-06-08
      回复
    • 黄思程
      黄思程
      2018-06-11

      我这边看到query里都是有值的,推荐那个也正常填上。

      对于后面一个问题,会先触发app.onShow

      2018-06-11
      回复
  • 竹风
    竹风
    2018-06-06

    应该是微信的问题

    2018-06-06
    有用 1
    回复
  • 一生向阳
    一生向阳
    2018-06-06

    只要进入小程序,app.js里的用onshow肯定会执行的,你认真检查是否在onshow方法里判断某些条件才会继续往下执行,建议onshow代码贴上来看看。

    2018-06-06
    有用 1
    回复 5
    • Layen
      Layen
      2018-06-06

      这里就是解析赋值的操作,没什么其他东西,我是怀疑任务栏的小程序再次进来不进入APP.js 的Onshow 回调

      App({

      onLaunch: function () {

      console.log('App Launch')

      },

      onShow: function (options) {

              const scene = decodeURIComponent(options.query.scene)

              if (scene === 'undefined'){

                  this.globalData.scene.value = ""        

              }else{

                  this.globalData.scene.value = scene

              }

          },

      });


      2018-06-06
      回复
    • 一生向阳
      一生向阳
      2018-06-07回复Layen

      scene  ===  undefined,全等的话 undefied不要加引号。

      2018-06-07
      回复
    • Layen
      Layen
      2018-06-07回复一生向阳

      undefined 不生效的 所以才加了引号

      2018-06-07
      回复
    • 一生向阳
      一生向阳
      2018-06-07回复Layen

               if ( scene  ===  'undefined' ){

                  console.log('aa')

                  this .globalData.scene.value =  ""        

              } else {           

                  console.log('bb')

                   this .globalData.scene.value =  scene

              }

      看是否会输出,输出的话输出哪一个。

      回复

      2018-06-07
      回复
    • Layen
      Layen
      2018-06-07回复一生向阳

      第一次没有参数 是 aa

      通过二维码进来了就是 bb

      2018-06-07
      回复
  • 快乐的豆腐
    快乐的豆腐
    2019-01-18

    哈哈

    2019-01-18
    有用
    回复
  • Layen
    Layen
    2018-06-06

    已解决 是赋值问题,小程序没有问题。

    2018-06-06
    有用
    回复 1
    • 七芋圆全
      七芋圆全
      2019-05-21

      请问你这个问题是如何解决的,我也遇到这样的问题了。

      2019-05-21
      回复
登录 后发表内容