微信小程序分享功能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 相关文章推荐
jQuery 注意事项 与原因分析
Apr 24 Javascript
javascript的内存管理详解
Aug 07 Javascript
js返回上一页并刷新的多种实现方法
Feb 26 Javascript
AngularJS使用angular-formly进行表单验证
Dec 27 Javascript
js实现浏览器倒计时跳转页面效果
Aug 12 Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
Feb 14 Javascript
JavaScript Uploadify文件上传实例
Feb 28 Javascript
AngularJs点击状态值改变背景色的实例
Dec 18 Javascript
微信小程序 Animation实现图片旋转动画示例
Aug 22 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
Jun 17 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
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
php xml文件操作实现代码(二)
2009/03/20 PHP
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
详解JavaScript中的数组合并方法和对象合并方法
2018/05/11 Javascript
详解node.js 事件循环
2020/07/22 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
[00:33]2016完美“圣”典风云人物:Sccc宣传片
2016/12/03 DOTA
Python发送email的3种方法
2015/04/28 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
python3 enum模块的应用实例详解
2019/08/12 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
pycharm安装及如何导入numpy
2020/04/03 Python
Django 权限管理(permissions)与用户组(group)详解
2020/11/30 Python
python 图像增强算法实现详解
2021/01/24 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
办公室主任职责范文
2013/11/08 职场文书
个人务虚会发言材料
2014/10/20 职场文书
创业计划书之酒厂
2019/10/14 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏