最近写了一个h5链接,其中有一个推广的功能,点击推广可以转发到微信朋友圈或者微信,而且下面的这个小程序码,用户扫了可以进入小程序特定的页面,并且写到了当前分享的这个人的邀请码。关于微信分享的问题下次再说,这次要说得是扫小程序码(江湖人称菊花码),在小程序里有的时候可以获取到邀请码,有的时候获取不到,前提是后端那没问题,邀请码(inviteCode)是一定返回了的。
在寻找了很久之后都没找到问题所在,直到拿小程序码去本地测验,发现了问题所在,下面这是原先的代码,直接onload中是可以获取到code,测试扫小程序码在10次里面会出现一次,直接输出两次query,第一次的query有值,但是第二次为空,因此才会出现有的时候获取不到code码的情况。
onLoad(query) {
const inviteCode = query.inviteCode
this.setData({ inviteCode: inviteCode })
console.log(query,'query')
//{inviteCode:'YYH0001'} {}
},
翻微信官方文档找到了解决办法,主要是用到getLaunchOptionsSync(),在小程序启动时就获取到参数,这样无论什么情况都可以获取到code。文档链接在这https://developers.weixin.qq.com/miniprogram/dev/api/base/app/life-cycle/wx.getLaunchOptionsSync.html
onLoad(query) {
const obj = wx.getLaunchOptionsSync()
console.log(obj.query,query,'obj')
const inviteCode = obj.query.inviteCode || query.inviteCode
this.setData({ inviteCode: inviteCode })
}
获取微信小程序码,官方文档给出了四种方案,完全按照官方的去写就行https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/qr-code.html,我这次写的业务是用到了接口a这种方式。就看着官方文档,依葫芦画瓢就可以了,毕竟和前端没啥太大关系,主要是后端在写,哈哈哈哈。
下篇文章将会讲,h5分享到微信好友以及朋友圈,我踩过的坑!!!!经此一战,我对微信的东西产生了敬畏之心