在服务端生成专属分享码后用户可以用户扫码进入将带上参数,然后小程序里面根据scene值进行解析小程序,这样达到我们想要的效果,比如拉新功能等等。
生成小程序码文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html
onLoad: function(query) { //store_num%3D99%26from%3Dxiaov//这是解析前的,需要decodeURIComponent解析一下 //var scene = 'store_num=99&from=xiaov';//模拟query.scene解析后的结果 //扫码进入后根据二维码参数提交数据 if (query.scene){ var scene = decodeURIComponent(query.scene);//store_num=99&from=xiaov var paramsObj = {}; var arrs = scene.split("&"); for (var i = 0; i < arrs.length; i++) { // 分别将 = 左右两边拆分为数组, 动态变为键值对 paramsObj[arrs[i].split("=")[0]] = arrs[i].split("=")[1] } console.log( paramsObj);//{"from": "xiaov","store_num": "99"} //todo 业务逻辑 } }
注意事项:
scene仅在小程序发布后才具有该值,模拟时可以var定义一个或者生产一个带参数的码(必须有某个版本发布过,否则无法生成)扫码模式调试
scene是经过encodeURIComponent()加密过的,所以需要用对应的函数先解密
scene是字符串,需要根据需要分割为自己想要的格式,上面的例子是分割为对象属性值