收藏
回答

wx.scanCode返回的path中scene的参数,iOS和安卓真机表现不一致?

开发者工具和iOS中解析scene参数均正常。安卓的scene扫码的path参数被直接解码了而且经常性变动,导致判断失效。

iOS表现:path"pages/share/share?scene=sid%3D19"

Android表现:path"pages/share/share?scene=sid=19"

因此导致无法解析

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

4 个回答

  • Hello W
    Hello W
    2021-07-28

    decodeURIComponent(scene)去切割

    2021-07-28
    有用 1
    回复 1
    • 花在风雨中
      花在风雨中
      发表于移动端
      2021-07-28
      不是切割的问题,是安卓默认把参数解码了,不好操作。
      2021-07-28
      回复
  • 无尘
    无尘
    发表于移动端
    2021-10-30
    1
    2021-10-30
    有用
    回复
  • 李刚
    李刚
    2021-09-26

    最后怎么解决的?同样的问题。。

    2021-09-26
    有用
    回复 1
    • 花在风雨中
      花在风雨中
      2021-10-16
      没法让微信解决,不承认bug,我只能判断设备系统做不同的处理了。还好自己的参数简单。
      2021-10-16
      回复
  • 你好耀眼。
    你好耀眼。
    2021-07-28

    参数不要这样显示,可以用_拼接

    2021-07-28
    有用
    回复 3
    • 花在风雨中
      花在风雨中
      2021-07-28
      这个不是我的参数,这个是扫码之后返回的path不一样的,由于生成的二维码只有线上版本,所以我在首页预览版的时候显示一个扫码按钮来实现预发布的测试功能,我扫描小程序码之后由wx.scanCode返回的res.path,这个由于官方的工具返回的不一样,导致我的参数不好处理。这个也仅是自己使用这个扫码功能的问题,线上码都直接跳转到指定页面去了,如果有体验版小程序码,我又何必再写个扫码功能去给测试人员去搞呢
      2021-07-28
      回复
    • 你好耀眼。
      你好耀眼。
      2021-07-28回复花在风雨中
      扫码的信息是后端控制的啊,既然=不可以那就用_啊,而且只有一个参数的话可以不写sid=,直接传参数就可以了啊,让后端修改一下不就行了,本来扫码就是线上才能测试啊。参数问题和线不线上有啥关系
      2021-07-28
      回复
    • 花在风雨中
      花在风雨中
      2021-07-28
      意思看明白了,意思是成二维码的时候scene=的参数值有多个参数用下划线拼接,本来他自己提供了encodeURIComponent(), 但是iOS的未进行解码,安卓的进行了解码,这个是扫码获取路径的一个bug, 不用真机直接开发者模式调试是不会出现这个问题的。

      生成二维码的时候
      page: pages/share/share,
      scene: 'sid=1'
      改为
      page: pages/share/share
      scene: 'a_1-b_2-c_3',
      然后换一套解码方案,但是我只是报BUG而已。微信原有功能做了encodeURIcomponent和decodeURIcomponent就应该做好而已。解决问题不难。
      2021-07-28
      回复
登录 后发表内容