我们在微信小程序中经常会使用到分享商品海报,或者是重绘微信小程序分享链的图片功能。实现该功能只要跟着如下几个步骤就可以快速实现啦!(本文示例代码使用的是uni-app,原生或者其他框架需要将uni前缀该成对应框架前缀即可;)

步骤描述不清晰或者不想看步骤?那就直接访问完整代码地址吧
完整代码演示:微信小程序 - 分享商品海报
相关文档:
uni-app官方文档
微信小程序官方文档

第一步:提前将需要分享的图片素材先缓存至本地临时图片路径;

initPic(){this.handleNetImg('网络图片地址').then((res)=>{this.bgdSrc =res.path;//保存这个临时图片路径}
}
//生成临时图片
handleNetImg(imagePath) {return new Promise((resolve, reject) => {uni.getImageInfo({src: imagePath,success: function (res) {resolve(res);}});});
},

第二步:加入分享按钮以及Canvas元素;

<button open-type="share">点击分享</button>
<button @click="getPhotosAlbumAuth">保存本地</button>
<view class="canvas-box"><canvas canvas-id='mycanvas'></canvas>
</view>

第三步:初始Canvas,将内容画到Canvas上,画完后将画布生成临时图片;

createShareGoods(){uni.showLoading({title:'正在生成中...'})var ctx = 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;}})
},

微信小程序 - 分享商品海报相关推荐

  1. 微信小程序分享生成海报

    本文转自:微信小程序实现生成海报并且保存本地 - 张正-博客园 - 博客园 html: <view><image src="{{img}}" class='bgI ...

  2. 微信小程序分享生成海报(自带二维码)+头像+昵称

    前言: 我的分享海报是弹框,可根据自己要求写成页面,原理都是一样的,背景图是前期测试的,效果是OK的,真机测试手机也是显示的. 效果图: wxml: <!-- 生成海报 --><vi ...

  3. uniapp 微信小程序分享海报

    uniapp 微信小程序分享海报 下面是一个Uniapp微信小程序分享海报的简单示例: 在Uniapp项目中创建一个新的页面,用于展示要分享的内容和生成海报.例如,我们可以在新页面中显示一张图片和一些 ...

  4. 微信小程序分享海报/卡片 生成时一直加载可能存在的问题

    微信小程序分享海报/卡片 生成时一直加载可能存在的问题 很多时候,开发者在调试小程序的分享图时,总是会遇到不能正常生成的问题,这里面还是有许多的坑.这一次就把我个人所知道的问题分享一下. 第一种情况: ...

  5. 微信小程序分享二维码生成

    生成微信小程序分享二维码 微信小程序官方开放的二维码的接口,其中有一个是生成小程序二维码的,还有一个是圆形的小程序码,我这里就用php生成二维码. 完整代码: public function shar ...

  6. 微信小程序商品详情html,微信小程序关于商品详情类的富文本解析器

    微信小程序关于商品详情类的富文本解析器 2020年08月10日 | 萬仟网IT编程 | 我要评论 微信小程序关于商品详情类的富文本解析器富文本的解析,在vue中有v-html解析富文本的方法,但是在微 ...

  7. Python爬虫系列之爬取某社区团微信小程序店铺商品数据

    Python爬虫系列之爬取某社区团微信小程序店铺商品数据 如有问题QQ请> 点击这里联系我们 < 微信请扫描下方二维码 代码仅供学习交流,请勿用于非法用途 数据库仅用于去重使用,数据主要存 ...

  8. 微信小程序分享朋友圈功能

    微信小程序分享到朋友圈的功能,终于实现了!但是只能是点击右上角菜单方式分享!话不多说 直接上代码! js Page({onLoad: function (options) {if(options.in ...

  9. uni-app 微信小程序分享按钮

    uni-app 微信小程序分享按钮 官方文档说明 在 manifest.json 的 App SDK 配置里,勾选微信消息及朋友圈,并填写相关 appkey,微信 appkey 在需要分享的页面填写: ...

最新文章

  1. 怎样写出一个较好的高速排序程序
  2. Enterprise Library系列文章回顾与总结
  3. 我的软考大事记(北京市)
  4. Python 技术篇 - 通过pyminifier库实现源码压缩、混淆、加密保护实例演示,pyminifier的使用方法
  5. Java Web学习总结-文件下载
  6. 前端代码有关搜索引擎的代码
  7. python迷宫求解代码_Python中的迷宫求解
  8. NandFlash启动理解(S3C2410)
  9. Silverlight入门:第七部分 - 脱离浏览器的经验
  10. 计算机二级 java和web_2016计算机二级web程序设计判断题及答案
  11. Bex5常用方法总结
  12. 【信道编码/Channel Coding】纠错编码与差错控制
  13. B.DongDong认亲戚
  14. 人到中年,程序猿的人生路~
  15. u盘在电脑上读不出来,修复u盘插入电脑无法读取
  16. session Asii码转换
  17. 如何统计PHP程序的运行时间、耗费内存
  18. 基于springboot的支持http接口+dubbo接口的TestNG自动化测试框架
  19. 将特殊字体添加到了html页面中
  20. CentOS系统的安装

热门文章

  1. 全新2009高校BBS上温馨笑话
  2. 我是一位40岁的“老程序员”,我有一些想法
  3. 放假这么多天终于完成了一项作品
  4. 技术面试官应该怎么问?面试者应该怎么答?
  5. 腾讯近三年软件测试工程师面试笔试题目精选(包含答案)
  6. 织梦模板修改方法(转)
  7. haosou属于搜索引擎的_中国的搜索引擎有哪些
  8. 网神为互联网+智慧政务保驾护航
  9. CentOS双网卡双IP设置
  10. 第五章 局域网技术基础及应用