微信小程序分享功能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拦截alert对话框另类应用
Jan 16 Javascript
javascript基本类型详解
Nov 28 Javascript
JavaScript实现弹出子窗口并传值给父窗口
Dec 18 Javascript
jqPlot jQuery绘图插件的使用
Jun 18 Javascript
jQuery实现动态给table赋值的方法示例
Jul 04 jQuery
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
Sep 11 Javascript
JQuery 又谈ajax局部刷新
Nov 27 jQuery
详解js跨域请求的两种方式,支持post请求
May 05 Javascript
js变量声明var使用与不使用的区别详解
Jan 21 Javascript
JS实现多选框的操作
Jun 24 Javascript
vue实现滑动解锁功能
Mar 03 Vue.js
vue实现input输入模糊查询的三种方式
Aug 14 Vue.js
详解关于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入门小知识
2008/03/24 PHP
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
php中文字符串截取方法实例总结
2014/09/30 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
js中for in语句的用法讲解
2015/04/24 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
[原创]Javascript 实现广告后加载 可加载百度谷歌联盟广告
2016/05/11 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
简单理解js的冒泡排序
2016/12/19 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
Node.js readline模块与util模块的使用
2018/03/01 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
vue中路由跳转不计入history的操作
2020/09/21 Javascript
Python continue语句用法实例
2014/03/11 Python
Python中的集合类型知识讲解
2015/08/19 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Python CVXOPT模块安装及使用解析
2019/08/01 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
人事助理自荐信
2014/02/02 职场文书
优秀护士先进事迹
2014/05/08 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
学校端午节活动总结
2015/02/11 职场文书
个人年终总结范文
2015/03/09 职场文书
售后服务质量承诺书
2015/04/29 职场文书
幽默导游词开场白
2015/05/29 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis