微信小程序分享功能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对象的property和prototype是这样一种关系
Mar 24 Javascript
学习ExtJS 访问容器对象
Oct 07 Javascript
理解Javascript_07_理解instanceof实现原理
Oct 15 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
Jun 06 Javascript
一个简单的JavaScript Map实例(分享)
Aug 03 Javascript
jQuery File Upload文件上传插件使用详解
Dec 06 Javascript
AugularJS从入门到实践(必看篇)
Jul 10 Javascript
bootstrap多层模态框滚动条消失的问题
Jul 21 Javascript
JS模拟实现哈希表及应用详解
May 04 Javascript
angular的输入和输出的使用方法
Sep 22 Javascript
Vue-cli4 配置 element-ui 按需引入操作
Sep 11 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异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
php随机显示图片的简单示例
2014/02/15 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
js数组操作常用方法
2014/05/08 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
Node.js中npm常用命令大全
2016/06/09 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
JS中的进制转换以及作用
2016/06/26 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
详释JavaScript执行环境与执行栈
2019/04/02 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
2019/09/02 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
Vue 3.0中jsx语法的使用
2020/11/13 Javascript
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
Python 读写文件的操作代码
2018/09/20 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
opencv导入头文件时报错#include的解决方法
2019/07/31 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
python Matplotlib模块的使用
2020/09/16 Python
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
高三高考决心书
2014/03/11 职场文书
带病坚持工作事迹
2014/05/03 职场文书
委托书如何写
2014/08/30 职场文书
小学教师年度个人总结
2015/02/05 职场文书
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL