微信小程序分享功能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 相关文章推荐
JS Timing
Apr 21 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
Jun 19 Javascript
jQuery结合ajax实现动态加载文本内容
May 19 Javascript
javascript正则表达式定义(语法)总结
Jan 08 Javascript
JS实现Select的option上下移动的方法
Mar 01 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
Jun 24 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
Sep 24 Javascript
jQuery 特性操作详解及实例代码
Sep 29 Javascript
JavaScript中三个等号和两个等号你了解多少
Jul 04 Javascript
VueRouter导航守卫用法详解
Dec 25 Javascript
mint-ui在vue中的使用示例
Apr 05 Javascript
详解vue 命名视图
Aug 14 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
php控制文件下载速度的方法
2015/03/24 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
jquery ajax 登录验证实现代码
2009/09/23 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
基于insertBefore制作简单的循环插空效果
2015/09/21 Javascript
Javascript BOM学习小结(六)
2015/11/26 Javascript
JS表格组件BootstrapTable行内编辑解决方案x-editable
2016/09/01 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
js代码规范之Eslint安装与配置详解
2018/09/08 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
VUE 项目在IE11白屏报错 SCRIPT1002: 语法错误的解决
2020/09/27 Javascript
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
python图像处理之反色实现方法
2015/05/30 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
详解python如何引用包package
2020/06/07 Python
Python字典实现伪切片功能
2020/10/28 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
意大利奢侈品牌在线精品店:Jole.it
2020/11/23 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
学校办公室主任职责
2013/12/27 职场文书
幼儿园招生广告
2014/03/19 职场文书
爱与责任演讲稿
2014/05/20 职场文书
计算机毕业生求职信
2014/06/10 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
清洁工个人工作总结
2015/03/05 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
幼儿园班级工作总结2015
2015/05/25 职场文书
分享五个Node.js开发的优秀实践 
2022/04/07 NodeJs