记录一下折腾小程序遇到的问题。小程序目前只提供了分享给朋友或者群聊,想要分享到朋友圈只能合成带小程序码的海报分享到朋友圈
本篇的小程序使用的是uni-app开发小程序,代码都是适用于uni-app的,方法和微信小程序官方差别不大,”uni.”改成”wx.”基本就可以使用。
合成带小程序码的海报分享到朋友圈,小程序码怎么获取看前文《PHP获取微信小程序码》,这篇文章要做的是所有图片素材已经有网络路径,当然路径是https协议的,并且在小程序后台已配置。
思路
- 合理布局,画布设置好尺寸,放在屏幕以外备用
- wx.downloadFile()方法下载所有需要使用的图片,得到的路径为本地临时路径
- canvas绘制海报;将图片合理绘制在海报上预设的位置
- 将canvas提取出来,获得海报本地临时路径,在弹窗中展示使用
- 点击按钮,wx.saveImageToPhotosAlbum(),使用海报本地临时路径下载到本地相册
准备工作
data中定义几个变量,方便下文使用:
1 | product_cover: '', // 商品图url |
模板和css
1 | <!-- canvas绘制海报 --> |
1 | /* 把canvas直接展示,移出到屏幕可视区域以外,方便绘制,调试的时候放在屏幕上就行 */ |
主要是把画布设置好尺寸,放在屏幕以外的地方
下载所有需要使用的图片
https://developers.weixin.qq.com/miniprogram/dev/api/network/download/wx.downloadFile.html
官方说明
wx.downloadFile()
1 | DownloadTask wx.downloadFile(Object object) |
关键源码
1 | /** |
canvas绘制海
https://developers.weixin.qq.com/miniprogram/dev/api/canvas/wx.createOffscreenCanvas.html
canvasToTempFilePath()
1 | wx.canvasToTempFilePath(Object object, Object this) |
关键源码
1 | /** |
wx.canvasToTempFilePath()必须在ctx.draw()执行完之后才能调用。
获得海报本地临时路径后,可以直接在image标签中使用,弹窗展示海报预览图。
点击保存海报到本地
wx.saveImageToPhotosAlbum()
1 | wx.saveImageToPhotosAlbum(Object object) |
1 | /** |
成品如下: