微信小程序实现分享商品海报功能
我们在微信小程序中经常会使用到分享商品海报,或者是重绘微信小程序分享链的图片功能。实现该功能只要跟着如下几个步骤就可以快速实现啦!(本文示例代码使用的是uni-app,原生或者其他框架需要将uni前缀该成对应框架前缀即可;)
步骤描述不清晰或者不想看步骤?那就直接访问完整代码地址吧
完整代码演示:微信小程序-分享商品海报
相关文档:
uni-app官方文档
微信小程序官方文档
第一步:提前将需要分享的图片素材先缓存至本地临时图片路径;
initPic(){
this.handleNetImg('网络图片地址').then((res)=>{
this.bgdSrc=res.path;//保存这个临时图片路径
}
}
//生成临时图片
handleNetImg(imagePath){
returnnewPromise((resolve,reject)=>{
uni.getImageInfo({
src:imagePath,
success:function(res){
resolve(res);
}
});
});
},
第二步:加入分享按钮以及Canvas元素;
点击分享
第三步:初始Canvas,将内容画到Canvas上,画完后将画布生成临时图片;
createShareGoods(){
uni.showLoading({
title:'正在生成中...'
})
varctx=uni.createCanvasContext('mycanvas',this);
ctx.drawImage(this.bgdSrc,0,0,300,240);//画背景图
ctx.drawImage(this.itemPic,0,0,400,400,30,45,140,140);//画商品图片
ctx.drawImage(this.qrcode,0,0,400,400,225,5,100,100);//画二维码,这边可以变成小程序码
//现价
ctx.setFillStyle('#E80013');
ctx.setFontSize(18);
ctx.fillText('这边可以写一些说明之类的',180,100);
ctx.setFillStyle('#E80013');
ctx.setFontSize(18);
ctx.fillText('这边可以写一些说明之类的',100,100);
//开始画画完后生成新的临时图片地址
ctx.draw(false,()=>{
setTimeout(()=>{
uni.canvasToTempFilePath({
canvasId:'mycanvas',
success:(res)=>{
uni.hideLoading();
this.picTempUrl=res.tempFilePath;
}
});
},300);
})
},
第四步:点击分享按钮,完成分享;
/**
*分享页面到微信好友
*/
onShareAppMessage(){
return{
title:'限时特卖:'+this.name,
path:'pages/index/index?data=这边可以传一些ID啥的',
imageUrl:this.picTempUrl
}
},
第五步:保存到本地(获取权限后保存);
//获取手机相册权限
getPhotosAlbumAuth(){
uni.getSetting({
success:(res)=>{
if(!res.authSetting['scope.writePhotosAlbum']){
uni.authorize({
scope:'scope.writePhotosAlbum',
success:()=>{
this.saveImage();
}
})
}else{
this.saveImage();
}
}
})
},
//保存海报
saveImage(){
uni.saveImageToPhotosAlbum({
filePath:this.picTempUrl,
success:(data)=>{
uni.showToast({
title:"图片保存成功",
icon:"success",
mask:true
})
},
complete:()=>{
this.posterStatus=false;
}
})
},
为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。