需求
分享活动,截图保存到相册,图片上包含小程序码,扫码可进入该活动详情
实现
使用小程序云函数动态生成小程序码:
- scene: 扫码进入页面需要的参数
- page: 扫码进入的页面,必须是已经发布的小程序存在的页面(否则报错)
- width: 生成码的宽度
- is_hyaline: 是否需要透明底色
// 云函数入口函数
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.wxacode.getUnlimited({
scene: 'id=' + event.id,
page: 'pages/activityInfo/activityInfo',
width: 280,
isHyaline: true,
})
return result
} catch (err) {
return err
}
}
其余参数参考文档链接:云函数生成小程序码
注意事项
- page传参问题:page传入的参数必须是已发布的小程序存在的页面,初次发布或旧版本中没有的页面,生成会报错。可以先不传page参数,测试云函数和显示是否正常,上线前加上参数即可。
- scene传参问题:scene传参在页面上获取参数的方式为:
比如在云函数中传入的scene
为id=1
,那在onLoad
中获取scene
,options.scene
为id%3D1
,decodeURIComponent(options.scene)
为id=1
,所以想要获取1
就要自己处理一下了。
也可以直接设置scene
传入id
,不拼接字符串,这种适合只有一个参数的情况。
onLoad: function (options) {
let scene = options.scene;
let decodeScene = decodeURIComponent(options.scene)
},