收藏
回答

为什么扫描二维码获取不到scene参数值问题?

在微信开发工具模拟扫描生成的商品二维码进入页面:

根据文档所说:

调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟,开发工具模拟时的 scene 的参数值需要进行 encodeURIComponent


onLoad: function (options) {
    console.log(encodeURIComponent(options.scene))
 
}

打印出来是id?为什么?


这是生成二维码的参数不知道有没有问题:

let params = {
  "scene": `id=${id}&title=${'goods'}`,
  "page""pages/information/information"
}


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

2 个回答

  • 老张
    老张
    09-27

    不能先拼好scene再log出来看看是否正确吗?

    09-27
    赞同 1
    回复 11
    • Caferry
      Caferry
      09-27
      不好意思前辈,scene我也不太明白它是怎么用的,上面前辈指导我另一种方法了,请问你有好点的实现方式吗?小弟不才
      09-27
      回复
    • 老张
      老张
      09-27回复Caferry
      你让scene=12345调试,能扫出来的话,那就是"scene": `id=${id}&title=${'goods'}`,这一句出问题了。
      09-27
      回复
    • Caferry
      Caferry
      09-27回复老张
      前辈说对了,那我"scene": `id=${id}&title=${'goods'}`,应该如何做比较符合传参数呢?
      09-27
      回复
    • 老张
      老张
      09-27回复Caferry
      let str = `id=${id}&title=${'goods'}`;console.log(str);直到str得到正常的值后,再scene:str;
      09-27
      回复
    • 老张
      老张
      09-27回复Caferry
      一般我的话,会scene = id+'_'+goods,然后onLoad里解码后,options.scene.split('_')
      09-27
      回复
    查看更多(6)
  • จุ๊บ
    จุ๊บ
    09-27

    scene 不是这样写的。如果是一个参数,就是scene:1 ;如果是多个你可以用其它字符拼接起来,比如scene:1,2  接受之后再去分割

    09-27
    赞同 1
    回复 16
    • Caferry
      Caferry
      09-27
      您好,前辈能否再详细点吗?小弟不才
      09-27
      回复
    • จุ๊บ
      จุ๊บ
      09-27回复Caferry

      拿 你这个来说

      这里 写成 scene=38,goods

      接受的时候

      var scene = decodeURIComponent(options.scene).split(',');

      var id = scene['0'];

      var title = scene['1'];

      这样就获取到两个参数了啊。


      09-27
      回复
    • Caferry
      Caferry
      09-27回复จุ๊บ
      谢谢前辈指点,哪我这里let params = { "scene": `id=${id},${'goods'}`, "page": "pages/information/information" } 改成这样就行是吧?还需要decode一下吗?
      09-27
      回复
    • 发飙的蜗牛
      发飙的蜗牛
      09-27回复Caferry
      编不编码无所谓
      09-27
      回复
    • จุ๊บ
      จุ๊บ
      09-27回复Caferry

      我们后端处理的时候,是经过了decode

      09-27
      回复
    查看更多(11)
问题标签