前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序中为每篇文章生成小程序码

小程序中为每篇文章生成小程序码

作者头像
执行上下文
发布2022-07-26 14:51:37
1.4K0
发布2022-07-26 14:51:37
举报
文章被收录于专栏:执行上下文执行上下文

需求

为博客的每一篇文章生成分享海报,每张海报上需要一个带文章id的小程序码,微信官方提供三种方式生成小程序码。

api

api名

区别

wxacode.createQRCode

获取小程序二维码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制

wxacode.get

获取小程序码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制

wxacode.getUnlimited

获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制。

具体方法

这里主要用的第三种方法,api支持https和云调用,因为之前项目已经使用了云开发,所以这里直接使用云调用的方式。

接口名:openapi.wxacode.getUnlimited :
代码语言:javascript
复制
// 需要在配置文件 project.config.json 配置如下代码

"permissions": {
	"openapi": [
		"wxacode.getUnlimited"  // api名
	]
},
创建云函数调用,代码如下:
代码语言:javascript
复制
// 云调用依赖 wx-server-sdk
const cloud = require('wx-server-sdk')
// 项目的云环境
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event, context) => {
  try {
    // 方法调用
    const result = await cloud.openapi.wxacode.getUnlimited({
      page: event.page, // 页面路径
      width: 430,   // 生成二维码的宽度
      scene: event.scene, // page后面跟的参数写在scene中
      autoColor: event.autoColor, // 生成的二维码是否智能取色
      isHyaline: event.isHyalin  // 二维码背景色透明
    })
    console.log(result)
    return result
  } catch (err) {
    console.log(err)
    return err
  }
}
在使用的地方调用
代码语言:javascript
复制
wx.cloud.callFunction({
  name: 'createQRCode', // 函数名
  data: {
    page: 'pages/article/article',  // 传入的参数
    scene: _this.data.articleId,
    autoColor: true,
    isHyaline: true
  },
})
  .then(res => {
    _this.setData({
      // 注意 api请求返回的数据是一个 buffer数据流,这里我们可以用
      // 官方提供的wx.arrayBufferToBase64(res.result.buffer)方法直接
      // 转成base64 在拼接 「data:image/png;base64」就可以在页面渲染了
      tempImg: 'data:image/png;base64,' + wx.arrayBufferToBase64(res.result.buffer)
    })
  })
  .catch(console.error)

实现效果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 执行上下文 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • api
  • 具体方法
  • 实现效果
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档