微信小程序分享功能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 相关文章推荐
javascript中对对层的控制
Dec 29 Javascript
JQuery 学习笔记 选择器之一
Jul 23 Javascript
ext checkboxgroup 回填数据解决
Aug 21 Javascript
js取得url地址参数实例
Feb 22 Javascript
js动态创建、删除表格示例代码
Aug 07 Javascript
jquery和js实现对div的隐藏和显示方法
Sep 26 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
Aug 08 Javascript
Javascript创建类和对象详解
May 31 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
Jun 30 Javascript
Vue中控制v-for循环次数的实现方法
Sep 26 Javascript
vue添加class样式实例讲解
Feb 12 Javascript
微信小程序绘制图片发送朋友圈
Jul 25 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 中的输出缓冲
2006/12/21 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
2014/06/21 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
PHP文件操作实例总结
2016/09/27 PHP
改变隐藏的input中value值的方法
2014/03/19 Javascript
原生js实现淘宝首页点击按钮缓慢回到顶部效果
2014/04/06 Javascript
jquery实现鼠标悬浮停止轮播特效
2020/08/20 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
javascript 判断是否是微信浏览器的方法
2016/10/09 Javascript
原生JS简单实现ajax的方法示例
2016/11/29 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
基于代数方程库Algebra.js解二元一次方程功能示例
2017/06/09 Javascript
原生JS封装animate运动框架的实例
2017/10/12 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
微信小程序多音频播放进度条问题
2018/08/28 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
2019/10/30 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
Python将json文件写入ES数据库的方法
2019/04/10 Python
记一次Django响应超慢的解决过程
2020/09/17 Python
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
Python如何实现单例模式
2016/06/03 面试题
Structs界面控制层技术
2013/10/11 面试题
竞选演讲稿范文大全
2014/05/12 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
法学专业求职信
2014/07/15 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
工作服管理制度范本
2015/08/06 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
mysql 带多个条件的查询方式
2021/06/05 MySQL