微信小程序分享功能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 相关文章推荐
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
一个页面放2段图片滚动代码出现冲突的问题如何解决
Dec 21 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
Nov 19 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
May 19 Javascript
Bootstrap在线电子商务网站实战项目5
Oct 14 Javascript
JavaScript实现简单图片轮播效果
Aug 21 Javascript
javascript性能优化之分时函数的介绍
Mar 28 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
Aug 08 Javascript
关于自定义Egg.js的请求级别日志详解
Dec 12 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
Sep 25 Javascript
Vue的全局过滤器和私有过滤器的实现
Apr 20 Javascript
Vue页面渲染中key的应用实例教程
Jan 12 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开发GUI
2006/10/09 PHP
PHP性能优化准备篇图解PEAR安装
2011/12/05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
2014/06/30 PHP
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
学习YUI.Ext 第三天
2007/03/10 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
JavaScript浏览器对象之一Window对象详解
2016/06/03 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
详解webpack4.x之搭建前端开发环境
2019/03/28 Javascript
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
玩转python爬虫之URLError异常处理
2016/02/17 Python
基于Python的接口测试框架实例
2016/11/04 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
经销商订货会主持词
2014/03/27 职场文书
市场拓展计划书
2014/05/03 职场文书
实习公司领导推荐函
2014/05/21 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript