微信小程序 转发功能的实现


Posted in Javascript onAugust 04, 2017

微信小程序 转发功能的实现

1.当用户将小程序转发到任一群聊之后,可以获取到此次转发的 shareTicket

2.此转发卡片在群聊中被其他用户打开时,可以在 App.onLaunch() 或 App.onShow 获取到另一个 shareTicket

3.两步获取到的 shareTicket 均可通过 wx.getShareInfo() 接口可以获取到相同的转发信息。

onShareAppMessage(options)函数设置该页面的转发信息。

options参数说明:

from:转发事件来源。button:页面内转发按钮;menu:右上角转发菜单;
target:如果 from 值是 button,则 target 是触发这次转发事件的 button,否则为 undefined

自定义字段:

return {
  title: '转发', // 转发标题(默认:当前小程序名称)
  path: '/pages/index/index', // 转发路径(当前页面 path ),必须是以 / 开头的完整路径
  success(e) {
   // shareAppMessage: ok,
   // shareTickets 数组,每一项是一个 shareTicket ,对应一个转发对象
     // 需要在页面onLoad()事件中实现接口
     wx.showShareMenu({
      // 要求小程序返回分享目标信息
      withShareTicket: true 
     });
  },
  fail(e) {
   // shareAppMessage:fail cancel
   // shareAppMessage:fail(detail message) 
  },
  complete() { }
}

wx.showShareMenu(OBJECT) 带 shareTicket 的转发。

1.在SDK中与真机调试的过程中,都需要设withShareTicket为true,

2.否则在真机的调试过程中,即便选择了转发的群聊,也不会返回shareTicket

onLoad(e) {
  wx.showShareMenu({
   withShareTicket: true
  })
 }, onShow(e) {
  wx.showShareMenu({
   withShareTicket: true
  })
 },

wx.getShareInfo(OBJECT)获取转发详细信息

if (res.shareTickets) {
 // 获取转发详细信息
 wx.getShareInfo({
  shareTicket: res.shareTickets[0],
  success(res) {
   res.errMsg; // 错误信息
   res.encryptedData; // 解密后为一个 JSON 结构(openGId  群对当前小程序的唯一 ID)
   res.iv; // 加密算法的初始向量
  },
  fail() {},
  complete() {}
 });
}

小程序在群里被打开后,获取情景值和shareTicket

//app.js
App({
 onLaunch: function (ops) {
  if (ops.scene == 1044) {
   console.log(ops.shareTicket)
  }
 }
})

Bug & Tip

1.页面之间的参数传递,需要在onLoad()函数中接收,onShow()函数中无法接收。

2.获取群聊中被打开的小程序的shareTicket,需要在App.onLaunch() 或 App.onShow()。 页面的生命周期函数中是获取不到的。

3.将转发内容至单个用户时,是无法获取到shareTicket 。

以上就是微信小程序 转发功能 的实现,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
JavaScript表单常用验证集合
Jan 16 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
Aug 27 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
影响jQuery使用的14个方面
Sep 01 Javascript
分享一个常用的javascript静态类
Dec 31 Javascript
简单谈谈node.js 版本控制 nvm和 n
Oct 15 Javascript
基于jQuery实现的美观星级评论打分组件代码
Oct 30 Javascript
ECMAScript6--解构
Mar 30 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
Jun 08 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
详解vue中组件参数
Jul 09 Javascript
使用Vue实现移动端左滑删除效果附源码
May 16 Javascript
Vue计算属性的使用
Aug 04 #Javascript
JS+Ajax实现百度智能搜索框
Aug 04 #Javascript
vue插件vue-resource的使用笔记(小结)
Aug 04 #Javascript
分享Bootstrap简单表格、表单、登录页面
Aug 04 #Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
Aug 04 #Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 #jQuery
vue修改vue项目运行端口号的方法
Aug 04 #Javascript
You might like
php 三维饼图的实现代码
2008/09/28 PHP
谈谈PHP中substr和substring的正确用法及相关参数的介绍
2015/12/16 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
thinkphp验证码的实现(form、ajax实现验证)
2016/07/28 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
为Extjs加加速(javascript加速)
2010/08/19 Javascript
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
JavaScript的原型继承详解
2015/02/15 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
python查找第k小元素代码分享
2013/12/18 Python
在Python中使用列表生成式的教程
2015/04/27 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
Python爬虫文件下载图文教程
2018/12/23 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
基于opencv实现简单画板功能
2020/08/02 Python
灵活运用CSS3特性绘制简易版围棋效果
2016/09/28 HTML / CSS
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
师范学院毕业生求职信
2014/06/24 职场文书
温馨提示标语
2014/06/26 职场文书
北京故宫的导游词
2015/01/31 职场文书
单身申明具结书
2015/02/26 职场文书
2016公司新年问候语
2015/11/11 职场文书
vue3中的组件间通信
2021/03/31 Vue.js
基于Redis延迟队列的实现代码
2021/05/13 Redis
Python的三个重要函数详解
2022/01/18 Python