微信小程序实现分享到朋友圈功能


Posted in Javascript onJuly 19, 2018

截止到2017年11月18号,微信小程序官方还尚未开放直接分享到朋友圈的能力,但是劳动人民的智慧是伟大的,现在普遍的做法是,生成一张带有小程序码的图片,保存到用户相册,用户自行发布图片到朋友圈

我的套路:

  1. 请求后端API生成小程序码(生成小程序码需要access token,后端生成比较方便)
  2. canvas绘制文字和图片到画布
  3. 当用户点击分享到朋友圈时,给用户展示画布,画布转成图片,并将图片保存到相册
onShow: function () {
 var that = this;
 //1. 请求后端API生成小程序码
 that.getQr();

 //2. canvas绘制文字和图片
 const ctx = wx.createCanvasContext('myCanvas');
 var imgPath = '../../../image/intro.png'
 var bgImgPath = '../../../image/bgImgPath.png';
 ctx.drawImage(imgPath, 0, 0, 600, 520);

 ctx.setFillStyle('white')
 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)
 ctx.fillText('我在萌爪幼稚园', 30, 700)

 ctx.setFontSize(24)
 ctx.fillText('长按扫码查看详情', 30, 770)
 ctx.draw()
 },
 // 3. canvas画布转成图片
 wx.canvasToTempFilePath({
 x: 0,
 y: 0,
 width: 600,
 height: 800,
 destWidth: 600,
 destHeight:800,
 canvasId: 'myCanvas',
 success: function(res) {
 console.log(res.tempFilePath);
 that.setData({
  shareImgSrc : res.tempFilePath
 })

 },
 fail:function (res) {
 console.log(res)
 }
 })
 //4. 当用户点击分享到朋友圈时,将图片保存到相册
 wx.saveImageToPhotosAlbum({
 filePath:that.data.shareImgSrc,
 success(res) {
 wx.showModal({
  title: '存图成功',
  content: '图片成功保存到相册了,去发圈噻~',
  showCancel:false,
  confirmText:'好哒',
  confirmColor:'#72B9C3',
  success: function(res) {
  if (res.confirm) {
  console.log('用户点击确定');
  }
  that.hideShareImg()
  }
 })
 }
})

canvas绘制单位为px,举个例子,屏幕宽375,绘制375的画布,保存的图片就是375px,图片像素度不够会糊掉,所以我改进了一下套路:

1.请求后端API生成小程序码(生成小程序码需要access token,后端生成比较方便)

2.canvas绘制文字和图片到画布
绘制2倍屏幕宽度的canvas画布,canvas画布必须是可见状态下,才可以被转成图片,可是他辣么大辣么丑肯定不能给用户看见,那就给他定位定个巨大的数字超出屏幕就好了

3.画布转成图片

4.当用户点击分享到朋友圈时,给用户展示图片,并将图片保存到相册

微信小程序实现分享到朋友圈功能

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用正则获取指定路径文件的名称
Feb 27 Javascript
理解Javascript_13_执行模型详解
Oct 20 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
Aug 13 Javascript
基于jQuery Tipso插件实现消息提示框特效
Mar 16 Javascript
jquery对象访问是什么及使用方法介绍
May 03 Javascript
jQuery代码性能优化的10种方法
Jun 21 Javascript
Javascript 创建类并动态添加属性及方法的简单实现
Oct 20 Javascript
vue-loader教程介绍
Jun 14 Javascript
AngularJS 的$timeout服务示例代码
Sep 21 Javascript
JS原型对象操作实例分析
Jun 06 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
Jul 30 Javascript
openlayers4实现点动态扩散
Aug 17 Javascript
微信小程序实现自定义加载图标功能
Jul 19 #Javascript
Angular5集成eventbus的示例代码
Jul 19 #Javascript
微信小程序实现弹出菜单
Jul 19 #Javascript
微信小程序实现之手势锁功能实例代码
Jul 19 #Javascript
React组件重构之嵌套+继承及高阶组件详解
Jul 19 #Javascript
微信小程序实现折叠展开效果
Jul 19 #Javascript
详解Angularjs 自定义指令中的数据绑定
Jul 19 #Javascript
You might like
php弹出提示框的是实例写法
2019/09/26 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
浅谈js图片前端预览之filereader和window.URL.createObjectURL
2016/06/30 Javascript
vue params、query传参使用详解
2017/09/12 Javascript
JS中常用的消息框总结
2018/02/24 Javascript
three.js实现圆柱体
2018/12/30 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
vue 实现在同一界面实现组件的动态添加和删除功能
2020/06/16 Javascript
python 的列表遍历删除实现代码
2020/04/12 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
Python给你的头像加上圣诞帽
2018/01/04 Python
用Python抢火车票的简单小程序实现解析
2019/08/14 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
Python实现一个论文下载器的过程
2021/01/18 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
Sisley法国希思黎美国官方网站:享誉全球的奢华植物美容品牌
2020/06/27 全球购物
大学生实习期自我评价范文
2013/10/03 职场文书
大学军训感言400字
2014/03/11 职场文书
销售岗位职责范本
2014/06/12 职场文书
雷人标语集锦
2014/06/19 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
幼师辞职信怎么写
2015/02/27 职场文书
预备党员半年考察意见
2015/06/01 职场文书
公务员处分决定书
2015/06/25 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
技术入股协议书
2016/03/22 职场文书
浅谈Python协程asyncio
2021/06/20 Python