前端时间自己做了个小程序,然后要让用户能够分享页面去外部生态。
所以第一时间就想到了生成二维码海报的形式去做。
先看一下最终效果。
保存下来的图片是这样子的。
实现生成这一个功能,需要有以下步骤。
-
生成微信小程序二维码,并临时保存到本地
-
绘制Canvas画布内容(标题、描述、SLOGEN,二维码,提示语)
-
Canvas画布转临时地址
-
保存图片功能
下面开始为实际的开发,先申明因为本次是用Uniapp的Canvas、getFileSystemManager等一些API,所以代码仅适用于Uniapp。
其实思路也是一样的,用在微信原生小程序的话也只是某些API有变动而已,大同小异。
1. 生成微信小程序二维码,并临时保存到本地
官方文档API wxacode.getUnlimited | 微信开放文档
官方是有三个生成二维码的接口的,各有不同,大家可以自行了解一下,本文采用的是 getUnlimited 方式。(通过该接口生成的小程序码,永久有效,数量暂无限制,但是携带的参数最大32个可见字符 )
保存临时地址也是用了微信的FileSystemManager.writeFileSync API
可以让Base64上传到本地,转换成一个地址,从而让canvas可以绘制出来。
官方文档API