微信小程序实现分享朋友圈的图片功能示例


Posted in Javascript onJanuary 18, 2019

本文实例讲述了微信小程序实现分享朋友圈的图片功能。分享给大家供大家参考,具体如下:

由于微信小程序只支持分享给朋友或者群,不支持分享到朋友圈,又有分享到朋友圈这个需求,那就要想办法实现这个需求。查阅各种资料,发现基本思路有两种,一种是后端实现,另一种是前端实现,后端实现的方式这里就不讨论了,因为我是不懂后端的,只会前端的东西,所以这里就记录一下前端的实现方法。

前端要实现分享到朋友群,都是通过canvas做一张图片,然后用户手动分享朋友圈。前端具体要做的就是把要分享的页面用canvas重做一遍,生成一个图片,保存这个图片到用户本地相册。

要想用canvas,需要在页面上使用canvas标签,把它定位到页面之外,以免影响页面,在绘制图片时,图片的地址必须是通过微信下载图片后返回的虚拟地址,要不canvas无法绘制出来,接下来最主要的就是canvas的使用了,小程序的canvas和h5的canvas一样,并没有多大的区别。

下面是一个例子:

首先是在页面上创建canvas

index.wxml

<view class="canvas-box">
    <canvas canvas-id="myCanvas" style="width:100%;height:{{windowHeight}}px;"></canvas>
</view>
<button bindtap='startDraw'>分享朋友圈</button>

写一个样式把canvas定位到页面之外,以免影响页面的效果

.canvas-box{
  width: 100%;
  position: fixed;
  left: 0;
  top: 999999rpx;
}

接下来就是绘图了,具体可以参考绘图文档

startDraw:function(){
 const ctx = wx.createCanvasContext('myCanvas');
  let windowWidth = wx.getSystemInfoSync().windowWidth;
  let windowHeight = wx.getSystemInfoSync().windowHeight;
  let _this=this;
  this.setData({
   scale: 1.6
  });
  ctx.setFillStyle('#333');
  ctx.fillRect(0, 0, windowWidth, 100);
  ctx.setFontSize(20);
  ctx.setFillStyle('#fff');
  ctx.fillText('开始绘制图片', 30, 50);
  ctx.setFillStyle('#FFF');
  ctx.fillRect(0, 70, windowWidth, 600);
  ctx.setFillStyle('#666');
  ctx.setFontSize(19);
  ctx.fillText('我是标题',100, 140);
  ctx.setFontSize(20);
  ctx.fillText('微信小程序文本部分',20 , 170);
  ctx.draw()
}

到这为止,canvas绘图是做完了,现在要把canvas绘制的图形转化为图片,调用微信小程序已有的接口,接上面方法内:

wx.canvasToTempFilePath({
   x: 0,
   y: 0,
   width: windowWidth,
   height: windowHeight,
   destWidth: windowWidth,
   destHeight: windowHeight,
   canvasId: 'myCanvas',
   success: function (res1) {
    console.log('朋友圈分享图生成成功:' + res1.tempFilePath);
   }
});

这样就完成了分享图片的制作。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
网站上面有这种切换效果
Jun 26 Javascript
监控 url fragment变化的js代码
Apr 19 Javascript
javascript跨域刷新实现代码
Jan 01 Javascript
js中的前绑定和后绑定详解
Aug 01 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
Mar 11 Javascript
JS转换HTML转义符的方法
Aug 24 Javascript
手机端转换rem适应
Apr 01 Javascript
Vue服务器渲染Nuxt学习笔记
Jan 31 Javascript
vue.js通过路由实现经典的三栏布局实例代码
Jul 08 Javascript
Vue项目添加动态浏览器头部title的方法
Jul 11 Javascript
详解react内联样式使用webpack将px转rem
Sep 13 Javascript
微信公众平台 客服接口发消息的实现代码(Java接口开发)
Apr 17 Javascript
vue-cli3 karma单元测试的实现
Jan 18 #Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
Jan 18 #Javascript
如何解决.vue文件url引用文件的问题
Jan 18 #Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
Jan 18 #jQuery
vue.js实现的幻灯片功能示例
Jan 18 #Javascript
vue ssr 实现方式(学习笔记)
Jan 18 #Javascript
JS实现的贪吃蛇游戏完整实例
Jan 18 #Javascript
You might like
对google个性主页的拖拽效果的js的完整注释[转]
2007/04/10 Javascript
picChange 图片切换特效的函数代码
2010/05/06 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
JavaScript实现删除,移动和复制文件的方法
2015/08/05 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
js+canvas实现动态吃豆人效果
2017/03/22 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
Vue项目分环境打包的实现步骤
2018/04/02 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
Python实现模拟时钟代码推荐
2015/11/08 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
Python多图片合并PDF的方法
2019/01/03 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
python打印异常信息的两种实现方式
2019/12/24 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
python判断是空的实例分享
2020/07/06 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
html5唤起app的方法
2017/11/30 HTML / CSS
企划经理的岗位职责
2013/11/17 职场文书
政治学求职信
2014/06/03 职场文书
大学国际贸易专业自荐信
2014/06/05 职场文书
党支部季度考核意见
2015/06/02 职场文书
入党后的感想
2015/08/10 职场文书
MySQL锁机制
2021/04/05 MySQL
pytorch实现ResNet结构的实例代码
2021/05/17 Python