二维码传参读取不一致的问题
发布于 5 年前 作者 tao70 14311 次浏览 来自 问答
  • 当前 Bug 的表现(可附上截图)

使用获取小程序二维码接口时,path带上query(如:pages/index/index?key=value);

当query只有key,没有value(如:pages/index/index?key

iOS在onLoad或者是onLaunch时无法读取到query的key(此时value未传入)。

  • 预期表现

应该在onLoad时可以读取到query中的key,就算是不传入value。

安卓可以正常读取

  • 复现路径

null

  • 提供一个最简复现 Demo

null

10 回复

还是不行。。。。

好,稍等

谢谢。

现在暂时只能做到部分安卓兼容,iOS做不到。

填入appId:wx0dd6c62545703fef

app.js

App({

onLaunch: function (options) {

console.log(‘from onLaunch’, options);

// 从微信扫码进来时

// 查看options是否有输出

// 部分安卓正常输出

// iOS没有任何输出

}

})

创建一个页面:card

card.js

__
__

/**

  * 生命周期函数–监听页面加载

  */

onLoad: function (options) {

console.log(‘from onLoad’,options);

// 从微信扫码进来时

// 查看options是否有输出

// 部分安卓正常输出

// iOS没有任何输出

},

然后使用真机进入微信扫码

方法:

// 从微信扫码进来时

// 在控制台查看options是否有输出

// 部分安卓正常输出

// iOS没有任何输出

// 正常二维码path中携带参数为 page?key=value&key1=value1

// 现在情况为 page?key

// 二维码所在路径 images/测试用二维码.png

// 二维码填充内容: path = pages/card/card?fec7931dc2c575b9

貌似是你的 json 有错误,先不管了。

我大概明白你的意思了,我刚在 node 的 url parse 测试了一下,value 为空的时候,key 也是会保留,只不过对应的 value 变成 ‘’ 空字符串,理论上我们这边也要和这种做法对齐。

我们后面的版本修复一下,但之前的客户端版本,由于已经发布出去了,无法再修改了,对于老版本还会存在这样的情况,建议还是现在小程序内兼容一下。

好像还是空的,确认你这边是有的吗

我的有,,,但是分享出去就没了

重新建个代码片段试试?

回到顶部