【uniapp微信小程序】扫普通链接二维码打开小程序
需求:用户A保存自己的邀请码海报,用户B扫描该普通连接二维码,打开微信小程序,并且携带用户A的邀请码信息,用户B登录时,跟用户A关联,成为用户A的下级。
tips:保存海报到手机相册可以参考另一篇帖子:小程序保存海报到手机相册
一、小程序后台配置普通二维码的链接
官方文档指南
比如要生成二维码的链接是 https://example.com/ceshi?inviteCode=Haaaa123 (其中参数inviteCode是动态的),以下就用该链接举例子:
1. 配置业务域名
登录微信公众平台,进入「开发」-「开发管理」-「开发设置」,在「业务域名」中配置二维码跳转链接的域名。需下载校验文件并放置在域名根目录下完成验证。这里把要 转成普通二维码的链接域名配上去 https://example.com
2. 配置普通链接二维码规则
(1)开发版本或者体验版本:一般用于测试使用;
注:
- 二维码规则最后面不能带 / ,否则生成的二维码扫描之后打不开小程序;
- 二维码规则的域名一定要配置过校验文件;
- 小程序功能页面:填写的哪个页面路径,就要在哪个页面代码里接收参数;
- 体验版要配置测试链接,并且体验版只能固定测试链接里面配置的几个参数,不能动态,发布之后才能动态传参!
(2)线上版本:小程序发布后,再发布该规则,线上版本使用;
注: 必须小程序先发布代码,然后才能发布配置的规则,规则发布后,测试链接就可以不用配置了,可以动态的传任何参数;
二、用户扫码打开小程序并跳转到指定页面
1. 扫码打开小程序
用户扫描指定链接生成的二维码即可打开小程序 推荐一个二维码生成器 ,这里是测试,代码里一般调接口,接收后端返回的由动态参数生成的base64或者图片。
2. 小程序内部接收参数
在指定页面 (上面配置规则时是 pages/index/index 页面,则在首页接收参数),拿到参数后存起来,登录时作为参数传给后端,作为用户A邀请用户B的标识。
onLoad(options) {console.log(options, 'options');// 扫描普通二维码链接打开小程序if(options.q){const q = decodeURIComponent(options.q) // 获取到二维码原始链接内容let params = this.getUrlParams(q)let inviteCode = params.inviteCodeuni.$u.vuex("$inviteCode", inviteCode)}
},