收藏
回答

微信扫一扫 扫描 小程序普通二维码 跳转小程序页面 第一次取不到option里的q值,未定义?

真机测试时,小程序跳转设置为开发版,调试基础库2.19.3

微信扫一扫 扫描 小程序普通二维码 跳转小程序页面 第一次取不到option里的q值,报错undefined;

不关闭小程序,第二次扫码,跳转小程序页面,能取到option的q值。如果关闭小程序,再次扫码,依然报错undefined

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

2 个回答

  • 小麦穗
    小麦穗
    2021-10-15

    我也是如果把小程序开发版删了,就拿不到options ,第二次就能打开

    2021-10-15
    有用
    回复
  • 胃里养了只霸王龙
    胃里养了只霸王龙
    2021-09-06

    所以你取值在哪里取的,代码呢,改为下面这样,调试使用IDE的通过二维码预览进行调试。。

    // app.js
    onLaunch(options) {
      this.globalData.query = options.query || {}  
     if (options.referrerInfo) {
            this.globalData.query = Object.assign(this.globalData.query, options.referrerInfo.extraData)
          }
    },
    onShow(options) {
      this.globalData.query = options.query || {}  
      if (options.referrerInfo) {
            this.globalData.query = Object.assign(this.globalData.query, options.referrerInfo.extraData)
          }
      },
    globalData: {
      query: {}
    }
    
    // 你详情页面js:
    onLoad(options) {
      this.setData({
        id: options.id || app.globalData.query.id || ''
      })
    }
    
    2021-09-06
    有用
    回复 8
    • 西红柿炒番茄
      西红柿炒番茄
      2021-09-06
      我是这样获取的,我很奇怪,第一次扫码进入 ,options就是undefined,第二次进入就正常获取到q值,是否因为小程序需要登录呢?
      onLoad(options) {
         console.log(options);

         if (options && ‘q’ in options) {
          const q = decodeURIComponent(options.q);
          const querys = q
           .split('?')[1]
           .split(‘&’)
           .reduce((acc, it) => {
            let r = it.split(/=/);
            return Object.assi
            })gn(acc, {
             [r[0]]: r[1]
           }, {});
      2021-09-06
      回复
    • 胃里养了只霸王龙
      胃里养了只霸王龙
      2021-09-06回复西红柿炒番茄
      2021-09-06
      回复
    • 西红柿炒番茄
      西红柿炒番茄
      2021-09-06回复胃里养了只霸王龙
      我改成这样也是报错,这是真机测试的
      2021-09-06
      回复
    • 西红柿炒番茄
      西红柿炒番茄
      2021-09-06回复胃里养了只霸王龙
      报undefined,第二次扫码就不会报错了,但是也没有options.scene,只有options.q
      2021-09-06
      回复
    • 胃里养了只霸王龙
      胃里养了只霸王龙
      2021-09-06回复西红柿炒番茄
      用IDE测试。真机扫码打开是线上的。
      2021-09-06
      回复
    查看更多(3)
登录 后发表内容