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


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读取Xml文件做一个二级联动菜单示例
Mar 17 Javascript
jQuery中animate()方法用法实例
Dec 24 Javascript
使用canvas实现仿新浪微博头像截取上传功能
Sep 02 Javascript
js获取上传文件的绝对路径实现方法
Aug 02 Javascript
JS for...in 遍历语句用法实例分析
Aug 24 Javascript
JavaScript解析任意形式的json树型结构展示
Jul 23 Javascript
node.js将MongoDB数据同步到MySQL的步骤
Dec 10 Javascript
详解如何用babel转换es6的class语法
Apr 03 Javascript
axios如何利用promise无痛刷新token的实现方法
Aug 27 Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 05 Javascript
vue ssr服务端渲染(小白解惑)
Nov 10 Javascript
element-ui点击查看大图的方法示例
Dec 14 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项目开发中最常用的自定义函数整理
2010/12/02 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
基于php实现的验证码小程序
2016/12/13 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
JavaScript设置IFrame高度自适应(兼容各主流浏览器)
2013/06/05 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
Nodejs libuv运行原理详解
2019/08/21 NodeJs
Python创建xml的方法
2015/03/10 Python
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
python字典快速保存于读取的方法
2018/03/23 Python
Django 对IP访问频率进行限制的例子
2019/08/30 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
Python函数调用追踪实现代码
2020/11/27 Python
详解python中的异常和文件读写
2021/01/03 Python
菲律宾酒店预订网站:Hotels.com菲律宾
2017/07/12 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
中学生差生评语
2014/01/30 职场文书
函授本科自我鉴定
2014/02/04 职场文书
评先进个人材料
2014/12/29 职场文书
大学辅导员述职报告
2015/01/10 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript
python字符串的一些常见实用操作
2022/04/06 Python
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技