顺晟科技
2021-06-16 10:52:31
243
截至2017年11月18日,微信小程序官方还没有开通直接与朋友圈分享的能力,但是劳动人民的智慧是伟大的。现在常见的做法是用一个小程序代码生成一个图片并保存。对于用户相册,用户自己将图片发布到朋友圈
我的套路:
请求后端API生成小程序代码(生成小程序代码需要访问令牌,方便后端生成)
画布将文本和图片绘制到画布上
当用户点击分享到朋友圈时,画布显示给用户,画布变成图片,图片保存到相册中
onShow:函数(){
that=this
//1.请求后端应用编程接口生成小程序代码
that . GetQR();
//2.画布绘制文本和图片
const CTX=wx . createcanvascontext(' MyCanvas ');
var imgPath='./././image/intro.png '
var bgImgPath='./././image/bgimgpath . png ';
ctx.drawImage(imgPath,0,0,600,520);
ctx.setFillStyle('白色')
ctx.fillRect(0,520,600,280);
ctx.drawImage(imgPath,30,550,60,60);
ctx.drawImage(bgImgPath,30,550,60,60);
ctx.drawImage(imgPath,410,610,160,160);
ctx.setFontSize(28)
ctx.setFillStyle('#6F6F6F ')
Ctx.fillText('姚耀灵',110,590)
ctx.setFontSize(30)
ctx.setFillStyle('#111111 ')
Ctx.fillText('宠物,快来看可爱宠物的美照',30,660)
(我在赵萌幼儿园,30,700)
ctx.setFontSize(24)
Ctx.fillText('长按扫描码查看详情',30,770)
ctx.draw()
},
//3.画布画布被转换成图片
wx . canvastotemfilepath({
x: 0,
y: 0,
宽度: 600,
高度: 800,
destWidth: 600,
destHeight:800,
canvasId: '我画布',
成功:功能(res) {
console . log(RES . TempFilePath);
that.setData({
shareImgSrc : RES . tempfile path
})
},
fail:function (res) {
console.log(res)
}
})
//4.当用户点击分享到朋友圈时,将图片保存到相册
wx.saveImageToPhotosAlbum({
file path : that . data . shareimgsrc,
成功(res) {
wx.showModal({
标题: '成功保存图纸',
内容: '图片已成功保存到相册,发圈已移除~ ',
showCancel:false,
确认文本: '确定',
确认颜色:'#72B9C3 ',
成功:功能(res) {
if (res.confirm) {
Console.log('用户单击确定');
}
that.hideShareImg()
}
})
}
})
画布是用px画的。比如屏幕宽度是375,画的是375的画布。保存的图片是375px。如果图片像素不够,就会烧坏,所以我改进了套路:
1.请求后端API生成小程序代码(生成小程序代码需要访问令牌,方便后端生成)
2 .画布将文本和图片绘制到画布上
画一个屏幕宽度为2倍的画布。画布必须是可见的,才能变成图片。但是,如果他又热又丑,一定不能被用户看到。然后在屏幕之外给他设置一个巨大的数字就好了。
3.画布变成了一幅画
4.当用户点击分享到朋友圈时,将图片展示给用户,并将图片保存到相册
11
2022-12
04
2022-06
17
2022-03
18
2021-11
19
2021-06
16
2021-06