在微信公众平台“开发设置”中,我们添加了一个“扫普通链接二维码打开小程序”,并且已发布,后台生成一个二维码之后,解析出来是需要带参数的,比如 https://XXX.com/pages/index/i... 等,参数大概8个左右,小程序发布以后,我们扫码后,在日志里面发现获取的参数都未undefined,
前台获取代码写在onLoad中:
onLoad: function (options) { let that = this ; let id = options.id; let num = options.num; let lang = options.lang; · · · wx.request({ url: app.data.WebRoot + "xxx" , data:{ id:id, num:num, lang:lang }, success: function (res) { } }); } |
然后怕是要转码,又改成
onLoad: function (options) { let that = this ; let id = decodeURIComponent (options.id); let num = decodeURIComponent (options.num); let lang = decodeURIComponent (options.lang); · · · wx.request({ url: app.data.WebRoot + "xxx" , data:{ id:id, num:num, lang:lang }, success: function (res) { } }); } |
用decodeURIComponent转码,然而用户扫码出来所有参数还是undefined
二维码内容获取
在小程序后台配置二维码跳转小程序规则之后即可使用微信(6.5.6及其以上客户端版本)扫码打开小程序。
二维码链接内容会以参数q的形式带给页面,在onLoad事件中提取"q"参数并自行UrlDecode一次,即可获取原二维码的完整内容。