1. 云开发新建云函数getQrCode
// 云函数入口文件
const cloud = require('wx-server-sdk');
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const full_path = event.page + '?' + event.scene;
try {
// 生成小程序码
const wxacodeResult = await cloud.openapi.wxacode.getUnlimited({
scene: event.scene,
page: event.page,
width: 240
})
// return wxacodeResult;
if (wxacodeResult.errCode != 0) {
// 生成二维码失败,返回错误信息
return wxacodeResult;
}
// 上传到云存储
const uploadResult = await cloud.uploadFile({
cloudPath: 'qr/' + new Date().getTime() + '.jpg',
fileContent: wxacodeResult.buffer,
});
// return uploadResult;
if (!uploadResult.fileID) {
//上传失败,返回错误信息
return uploadResult;
}
// 获取图片临时路径
getURLReault = await cloud.getTempFileURL({
fileList: [uploadResult.fileID]
});
fileObj = getURLReault.fileList[0];
fileObj.fromCache = false;
// 上传成功,获取文件临时url,返回临时路径的查询结果
return fileObj;
} catch (err) {
return err
}
}
2. 前端js调用并显示
onPreview(e) {
wx.cloud.callFunction({
name: "getQrCode",
data: {
page: 'pages/index/index',
scene: 'id=6666',
thumbs_up_task_id: 111
},
success: res => {
console.log(res)
wx.previewImage({
urls: [res.result.fileID],
})
}
})
}
3. 效果图