微信小程序实现微信小程序实现canvas分享朋友圈海报分享朋友圈海报
本文实例为大家分享了微信小程序分享朋友圈海报的具体代码,供大家参考,具体内容如下
思路:思路:生成朋友圈海报放在公共文件,首先需要绘制canvas,点击分享朋友圈按钮,在手机屏幕看不见的地方(定位left:
1000px)绘制出canvas,绘制完成将canvas转为图片显示。点击保存按钮,将本地缓存路径的图片下载到手机相册,在这里
需要进行授权处理
untils.js文件文件
// 参数说明: mainImg 商品图 headImg 微信头像 onshareImg 二维码 goodsName 商品名称 goodsDec 商品描述 goodsTime 截图时间 goodsPrice 商品价
格 callback 绘制完成回调
// 需要在小程序控制台downfile加入网络图片的域名, 否则无法显示图片
shareImgCanvas: function(mainImg, headImg, onshareImg, goodsName, goodsDec, goodsTime, goodsPrice, callback) {
var that = this
// 防止网络图片绘制失败, 将网络图片更改为本地缓存图片, 成功回调执行
let promise1 = new Promise(function(resolve, reject) {
wx.getImageInfo({
// src需要使用https网络路径
src: mainImg,
success: function(res) {
resolve(res);
}
})
});
let promise2 = new Promise(function(resolve, reject) {
wx.getImageInfo({
src: headImg,
success: function(res) {
resolve(res);
}
})
});
let promise3 = new Promise(function(resolve, reject) {
wx.getImageInfo({
src: onshareImg,
success: function(res) {
resolve(res);
}
})
});
// all接收数组作为参数, p1 p2 p3 三个返回值, 都为fulfilled执行
Promise.all([
promise1, promise2, promise3
]).then(res => {
// 创建上下文
var ctx = wx.createCanvasContext('shareImg')
// 开始绘制
ctx.beginPath();
// 列表商品都有分享朋友圈功能, 需要多次调用绘制, 每次需先清除画布重新绘制
// 清除矩形区域
ctx.clearRect(0, 0, 400, 667)
// 重新填充, 不填充无法清除画布
// ctx.fillRect(0, 0, 400, 667); (无法清除画布看情况添加)
// 开始画
ctx.beginPath();
// 填充白色
ctx.setFillStyle("#fff")
// 填充进矩形框
ctx.fillRect(0, 0, 400, 667);
// 商品图
ctx.drawImage(res[0].path, 0, 0, 400, 400)
// 二维码
ctx.drawImage(res[2].path, 290, 470, 100, 100)
// 画头像圆
ctx.arc(364, 110, 30, 0, Math.PI * 2, false);
评论10
最新资源