在最近的项目中,因为我们没有办法直接将小程序分享到朋友圈,所以需要开发一个生成海报的功能,生成一张带有用户头像、用户名称、商品图片、商品价格和小程序二维码的图片,引导用户保存再分享到朋友圈,大概效果如下图所示:
但是考虑到小程序的Canvas功能以及各种兼容性问题,所以放弃了造轮子的想法,找到了一个可以通过JSON数据形式,来进行动态渲染并绘制图片的插件——Painter。
第一步:引入Painter,放在根目录的component中,目录结构如下:
第二步:配置JSON,当做组件引入
{
"usingComponents": {"painter": "../../component/painter/painter"}
}
第三步:canvasdata是一个JSON格式的画图数据的数据源,这里推荐一个工具可以可视化编辑生成海报(点我),可以通过绑定imgOK或者onImgErr事件来获取绘制成功或失败的消息。
<painter palette="{{canvasdata}}" bind:imgOK="onImgOK" />