uniapp开发小程序,小程序二维传参与H5、分享页面参数兼容的处理方案。
首先小程序获取二维码接口有三个,2个限制数量,一个不限制数量,但是限制生成频率(5000次/分钟)和参数长度(32位),我使用的是不限数量的接口:getUnlimited,传递的参数为:invite=10001,这个参数在H5二维码、页面分享的时候自带。但是小程序二维码和参数启动链接完全是2回事情。通过e.scene判断相关的二维码渠道也比较多。所以使用了一个偷懒的方法。
具体来看代码吧
首先来定义一个全局变量:
var invite_code;
然后App.vue中的onLaunch
export default { onLaunch(e) { let that = this, query = e.query, param = {}; console.log(e); if (query.invite) { param = query; } else { let _param = decodeURIComponent(query.scene); let param_arr = _param.split('&'); for (let i = 0; i < param_arr.length; i++) { let res = param_arr[i].split('='); param[res[0]] = res[1]; } } if (param.invite) { //存缓存,自定义函数哦,不可通用 //this.$app.setCache('invite_code', param.invite); invite_code = param.invite; } else { //读缓存,自定义函数哦,不可通用 //invite_code = this.$app.getCache('invite_code'); } console.log(param); } }