微信小程序分享功能onShareAppMessage(options)用法分析


Posted in Javascript onApril 24, 2019

本文实例讲述了微信小程序分享功能onShareAppMessage(options)用法。分享给大家供大家参考,具体如下:

在页面的js文件中定义了 onShareAppMessage 函数时,页面可以表示改页面可以转发。可以在函数中设置页面转发的信息。

1. 只有定义了该函数,小程序右上角的菜单中才会有转发按钮

2. 用户点击转发按钮的时候回调用该函数

3. 该函数内需要 return 一个 Object,Object中包含转发的信息(可自定义转发的内容)

页面中有可以触发转发时间的地方有两个:

一个是右上角菜单中的转发按钮

另一个是页面中具有属性open-type且其值为share的button。(注:必须是button组件,其他组件中设置 open-type="share" 无效)

即:

<button data-name="shareBtn" open-type="share">转发</button>

注意:实际开发中会发现这个 button 自带有样式,当背景颜色设置为白色的时候还有一个黑色的边框,刚开始那个边框怎么都去不掉,后来给button加了一个样式属性 plain="true" 以后,再在样式文件中控制样式 button[plain]{ border:0 } ,就可以比较随便的自定义样式了,比如说将分享按钮做成一个图标等

触发分享事件后调用的函数:

onShareAppMessage: function( options ){
  var that = this;
  // 设置菜单中的转发按钮触发转发事件时的转发内容
  var shareObj = {
    title: "转发的标题",    // 默认是小程序的名称(可以写slogan等)
    path: '/pages/share/share',    // 默认是当前页面,必须是以‘/'开头的完整路径
    imageUrl: '',   //自定义图片路径,可以是本地文件路径、代码包文件路径或者网络图片路径,支持PNG及JPG,不传入 imageUrl 则使用默认截图。显示图片长宽比是 5:4
    success: function(res){
      // 转发成功之后的回调
      if(res.errMsg == 'shareAppMessage:ok'){
      }
    },
    fail: function(){
      // 转发失败之后的回调
      if(res.errMsg == 'shareAppMessage:fail cancel'){
        // 用户取消转发
      }else if(res.errMsg == 'shareAppMessage:fail'){
        // 转发失败,其中 detail message 为详细失败信息
      }
    },
    complete: fucntion(){
      // 转发结束之后的回调(转发成不成功都会执行)
    }
  };
  // 来自页面内的按钮的转发
  if( options.from == 'button' ){
    var eData = options.target.dataset;
    console.log( eData.name );   // shareBtn
    // 此处可以修改 shareObj 中的内容
    shareObj.path = '/pages/btnname/btnname?btn_name='+eData.name;
  }
  // 返回shareObj
  return shareObj;
}

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

Javascript 相关文章推荐
Code: write(s,d) 输出连续字符串
Aug 19 Javascript
ExtJS扩展 垂直tabLayout实现代码
Jun 21 Javascript
分享一个用Mootools写的鼠标滑过进度条改变进度值的实现代码
Dec 12 Javascript
Google的跟踪代码 动态加载js代码方法应用
Nov 12 Javascript
不使用jquery实现js打字效果示例分享
Jan 19 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
JS访问SWF的函数用法实例
Jul 01 Javascript
jQuery获取URL请求参数的方法
Jul 18 Javascript
angular.js实现列表orderby排序的方法
Oct 02 Javascript
bootstrap-table formatter 使用vue组件的方法
May 09 Javascript
Layui数据表格 前后端json数据接收的方法
Sep 19 Javascript
如何手写一个简易的 Vuex
Oct 10 Javascript
详解关于webpack多入口热加载很慢的原因
Apr 24 #Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 #Javascript
vue router 通过路由来实现切换头部标题功能
Apr 24 #Javascript
js实现全选反选不选功能代码详解
Apr 24 #Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
Apr 24 #Javascript
Vue源码解析之数据响应系统的使用
Apr 24 #Javascript
详解微信小程序文件下载--视频和图片
Apr 24 #Javascript
You might like
php内存缓存实现方法
2015/01/24 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
ThinkPHP 3.2.3实现加减乘除图片验证码
2018/12/05 PHP
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
运算符&amp;&amp;的三个不同层次
2013/04/07 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
基于node.js制作简单爬虫教程
2017/06/29 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
浅谈React中组件间抽象
2018/01/27 Javascript
vue动态绑定组件子父组件多表单验证功能的实现代码
2018/05/14 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
JS获取动态添加元素的方法详解
2019/07/31 Javascript
python使用beautifulsoup从爱奇艺网抓取视频播放
2014/01/23 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
详解python中的hashlib模块的使用
2019/04/22 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
2012/10/05 面试题
教师自我评价范文
2013/12/16 职场文书
学习雷锋精神心得体会范文
2014/03/12 职场文书
幼儿教师求职信
2014/05/24 职场文书
节能减耗标语
2014/06/21 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang
Python OpenCV之常用滤波器使用详解
2022/04/07 Python
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers
Redis基本数据类型哈希Hash常用操作命令
2022/06/01 Redis