微信小程序 云开发 生成带参数小程序二维码
发布于 4 年前 作者 xiuyingyao 1264 次浏览 来自 分享

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. 效果图

回到顶部