小程序
小游戏
企业微信
微信支付
扫描小程序码分享
业务场景:客户通过扫码小程序码领取优惠券,小程序码带参为99000002%3AC%3A100000139,解密后就是99000002:C:100000139,然后我再讲优惠券分享给朋友时,进行取消操作,此时app.js的onshow方法会再调用一次,参数则改变为99000002%253AC%253A100000139,请问这种情况要怎么规避。
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
// 获取参数 app.js onLaunch(options) { this.globalData.query = options.query || {} if (options.referrerInfo) { this.globalData.query = Object.assign(this.globalData.query, options.referrerInfo.extraData) } }, onShow(options) { // 这里打印并且解密你的二维码里的参数 if (Object.keys(options.query).length > 0) { // 解决连续扫两次带参数的码,参数丢失的问题 this.globalData.query = options.query || {} // 处理通过小程序码进来的参数,包括渠道码等,放置到全局数据中 if (options.query.scene) { let queryObj = {} var strs = decodeURIComponent(options.query.scene).split('&') //以&分割 for (var i = 0; i < strs.length; i++) { queryObj[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1]) } Object.assign(this.globalData.query, queryObj) } } if (options.referrerInfo) { this.globalData.query = Object.assign(this.globalData.query, options.referrerInfo.extraData) } }, globalData: { query: {} }
// 页面js onLoad(options) { // 先从上个页面获取,再从app.js里获取,都没获取到给个空字符串做保护。 this.setData({ shareId: options.id || app.globalData.query.id || '' }) }
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
判断一下
代码逻辑卡就可以了,比如,当有解密参数,不进行再次解密
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
// 获取参数 app.js onLaunch(options) { this.globalData.query = options.query || {} if (options.referrerInfo) { this.globalData.query = Object.assign(this.globalData.query, options.referrerInfo.extraData) } }, onShow(options) { // 这里打印并且解密你的二维码里的参数 if (Object.keys(options.query).length > 0) { // 解决连续扫两次带参数的码,参数丢失的问题 this.globalData.query = options.query || {} // 处理通过小程序码进来的参数,包括渠道码等,放置到全局数据中 if (options.query.scene) { let queryObj = {} var strs = decodeURIComponent(options.query.scene).split('&') //以&分割 for (var i = 0; i < strs.length; i++) { queryObj[strs[i].split('=')[0]] = unescape(strs[i].split('=')[1]) } Object.assign(this.globalData.query, queryObj) } } if (options.referrerInfo) { this.globalData.query = Object.assign(this.globalData.query, options.referrerInfo.extraData) } }, globalData: { query: {} }
// 页面js onLoad(options) { // 先从上个页面获取,再从app.js里获取,都没获取到给个空字符串做保护。 this.setData({ shareId: options.id || app.globalData.query.id || '' }) }
判断一下
代码逻辑卡就可以了,比如,当有解密参数,不进行再次解密