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


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 相关文章推荐
基于jQuery试卷自动排版系统
Jul 18 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
Nov 19 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
Jan 08 Javascript
JavaScript打开word文档的实现代码(c#)
Apr 16 Javascript
js库Modernizr的介绍和使用
May 07 Javascript
Javascript对象字面量的理解
Jun 22 Javascript
微信小程序 教程之小程序配置
Oct 17 Javascript
javascript判断firebug是否开启的方法
Nov 23 Javascript
Javascript自定义事件详解
Jan 13 Javascript
node.js 核心http模块,起一个服务器,返回一个页面的实例
Sep 11 Javascript
js实现简单的打印表格
Jan 15 Javascript
js动态添加带圆圈序号列表的实例代码
Feb 18 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
PHP详细彻底学习Smarty
2008/03/27 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
php使用CutyCapt实现网页截图保存的方法
2016/10/03 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
如何使用angularJs
2017/05/08 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
JS二级菜单不同实现方法分析【4种方法】
2018/12/21 Javascript
js最全的数组的降维5种办法(小结)
2020/04/28 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
JavaScript基于SVG的图片切换效果实例代码
2020/12/15 Javascript
[03:23]我的刀塔你不可能这么可爱 第一期金萌萌的故事
2014/06/20 DOTA
[49:11]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.20
2020/12/23 DOTA
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Python如何执行系统命令
2020/09/23 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
亚马逊意大利站点:Amazon.it
2020/12/31 全球购物
法制宣传月活动总结
2014/04/29 职场文书
观看建国大业观后感
2015/06/01 职场文书