微信小程序不但可以通过扫描专门的微信小程序二维码打开,而且还可以配置通过普通链接二维码打开,同时还可以向小程序传递参数
扫普通链接二维码打开小程序
需要登录小程序后台,进入 设置
-> 开发设置
-> 扫普通链接二维码打开小程序
,开启功能参考说明即可配置二维码规则
发布后通过微信扫一扫扫描所有符合匹配规则的二维码,将跳转至指定的小程序页面
二维码中包含参数可以在小程序中获取
通过小程序码传参
可以通过调用服务端接口传入 scene
,打开小程序时可以获取其值
获取参数
在小程序的 onLaunch
与 onLoad
生命周期中,可以获取传递的参数
TIP
由于 onLaunch
仅在小程序初始化执行,如果仅在 onLaunch
获取参数。当小程序处于后台时,扫描不同的二维码再次打开小程序时,不会触发 onLaunch
将无法获取新的参数。所以最好在打开页面的 onLoad
生命周期中获取参数
js
// app.js
App({
onLaunch(options) {
if (options.query.scene) {
console.log('微信二维码', decodeURIComponent(options.query.scene))
}
if (options.query.q) {
console.log('普通二维码', decodeURIComponent(options.query.q))
}
}
})
js
Page({
onLoad(options) {
if (options.scene) {
console.log('微信二维码', decodeURIComponent(options.scene))
}
if (options.q) {
console.log('普通二维码', decodeURIComponent(options.q))
}
}
})
普通二维码将获取到二维码的原始信息,小程序二维码将获得scene值,获取到参数就可以进行相关逻辑处理了
分享传参 (附带)
最近发现直接在 onShareAppMessage
的 link 后加上参数,在小程序的页面直接就可以获取参数
js
page({
onLoad(options) {
console.log('options: ', options)
wx.showShareMenu({
withShareTicket: true
})
},
onShareAppMessage() {
return {
title: '分享测试',
path: 'pages/index/index?id=1&type=0'
}
},
})
TIP
安卓与IOS测试通过,微信开发者工具无法打开链接
如果需要,可以通过兼容处理
js
App({
onLaunch(option) {
if (option.path.includes('?')) {
wx.reLaunch({
url: option.path
})
}
}
})