收藏
回答

扫码能跳转到小程序,但获取不到options.q值?

请教:代码如下,通过扫码跳转到这一页,但得不到传过来的值,找不到原因。

 onLoad: function (options) {

    var id='';

    if (this.options.q) {

      let scan_url = decodeURIComponent(this.options.q); //获取二维码的字符串

      var id = scan_url.match(/\d+/).trim(); //截取以上字符串的数字部分,即id

      this.setData({

        ccbh: id

      })

    }

    console.log(this.options.q);

  },

提示:undefined

另外,如何真机测试扫码跳转到小程序?怎么查看扫码传过来的参数?

谢谢!

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

4 个回答

  • 24K大白羊🐑
    24K大白羊🐑
    2021-09-01

    小程序二维码传值有2种方式,取值也有2种方式,确认是否一致。

    至于真机测试,有很多方法,比如直接看后台业务数据,或者小程序的远程日志功能都可以,也可以在小程序中打印日志,在手机开发者模式看。

    多看文档,至少看3遍,你这个明显是看的少,没看懂就开始做。

    2021-09-01
    有用 2
    回复
  • Dustinge
    Dustinge
    2021-10-26

    不是this.options,直接options


    2021-10-26
    有用
    回复
  • 金猫数据
    金猫数据
    2021-09-01

    感谢大神,我修改了 onLoad: function,重新发布,能得到扫码带回的参数,我对这个参数进行了判断,当返回的参数中的数字长度大于5时执行一个函数,else执行另一个函数,现在始终只执行else里的函数 this.checkScanGzh(id);

    我对console.log进行字符长度显示又正常 ,单独运行这个函数也正常,不知道问题出在哪里。

    特请教!!

    谢谢!!

    if (this.options.q) {

            let scan_url = decodeURIComponent(this.options.q); //获取二维码的字符串

            var id = scan_url.match(/\d+/); //截取以上字符串的数字部分,即id

            // var id='21061367  '

            this.setData({

              ccbh: id

            })

            if (ccbh.length >5) {

              this.checkScanXLH(id);

            } else {

              this.checkScanGzh(id);

            }

          }

    id为两种,一种就是5位,另一种大于5位。

    2021-09-01
    有用
    回复
  • dreamhunter
    dreamhunter
    2021-09-01

     if (options.q)

    2021-09-01
    有用
    回复 3
    • 金猫数据
      金猫数据
      2021-09-01
      现在能获取到id,不知什么原因不能判断。请教一下,扫码跳转到小程序,怎么真机测试?我一扫都是跳到已经发布的程序去了。
      2021-09-01
      回复
    • 小麦穗
      小麦穗
      2021-10-15
      我第一次扫码不能获取options ,第二次才可以,你们遇到过这个问题吗
      2021-10-15
      回复
    • Luckytao
      Luckytao
      2021-11-18回复小麦穗
      遇到了,请问解决了吗
      2021-11-18
      回复
登录 后发表内容