当页面路径的参数是单个的时候,比如pages/store?store_id=1通过onLoad(options)中的options可以获取store_id。
但是当页面路径的参数是多个,比如pages/floors?store_id=1&floor_id=8:
当页面是pages/store?store_id=1, 扫描二维码获取单个参数store_id没有问题。
但是当页面是__pages/floor?store_id=1&floor_id=8,无法正确获得store_id和floor_id__
根据该页面路径生成页面二维码,用微信扫描二维码,在onLoad(options)方法中,通过console.log(options)打印出来是这个样子:
{stored_id:“1\u0026floor_id=8”}
但很久之前的行为是正确的,也就是说打印出来是{store_id: “1”, floor_id: “8”}
看起来似乎__&被转义成了\u0026__。
而通过体验版生成的二维码,打印出来是
{stored_id:“1”, amp;floor_id=8"},
也就是说__&被转义成了“amp;__”
在开发者工具中,因为是直接设置启动页面和启动参数,在扫面预览生成的的二维码,打印出来是完全正确的
{stored_id:“1”, floor_id=8"}
请问这个是微信后端生成二维码的bug还是微信客户端扫描后解析options的bug?
怎么解决?
这个二维码的数据有问题,生成的参数里面就已经是"pages/treasure-hunting/index.html?store_id=2\u0026floor_id=1"了,建议查一下生成二维码接口的调用代码。
嗯, 看来原因是我们使用的后端代码是ruby,ruby在to_json时候会将里面的特殊字符转义,比如将& 转义成了\u0026
path = “pages/index/index?store_id=1&floor_id=8”
{“path”=> path}.to_json.
这么看来的确是我们代码的问题。
我们是否有工具可以看到二维码的内容?这样可以方便程序员去调试与测试。
用iPhone扫出来的是mp.weixin.qq.com/a/wiw85HOIhtk~KcpCkmQB66T9Y91RXgofEg
这个东西对于程序员读没有任何价值
生成附带参数的小程序码,这个功能我调试了好几个发布版本才调试通(仅仅传递了一个参数),体验版不能调试,使得开发过程变得非常考验人的耐心。
onLoad()和onShow()的表现,在开发者工具和真机又有差别
为了别人踩坑后快点出来,我是怎么处理的。。。
这个问题我以前两次发帖提问都没有解决
扫码入口&转为&小程序识别不了
https://image.wxopen.club/content_7332e73a-3553-11ea-b236-a0999b08aadb.png
带多参数二唯码小程序接收&符号问题
https://image.wxopen.club/content_734398dc-3553-11ea-b236-a0999b08aadb.png
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# File http_post.py
import urllib;
import urllib2;
import json;
import sys;
import os;
img_url = “http://api.weixin.qq.com/wxa/getwxacode?access_token=xxx”
img_data = {“path”:“pages/index/index?store_id=1&floor_id=8”}
img_jdata = json.dumps( img_data )
img_req = urllib2.Request( img_url, img_jdata )
response = urllib2.urlopen( img_req )
f=open("./testqrcode.jpg",“wb”)
f.write(response.read())
这是测试的python 代码,更换一下AccessToken,直接跑吧。