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


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 相关文章推荐
JS获取dom 对象 ajax操作 读写cookie函数
Nov 18 Javascript
在html页面上拖放移动标签
Jan 08 Javascript
jquery 笔记 事件
Nov 02 Javascript
JavaScript学习笔记记录我的旅程
May 23 Javascript
js实现感应鼠标图片透明度变化的方法
Feb 20 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
Dec 10 Javascript
Javascript removeChild()删除节点及删除子节点的方法
Dec 27 Javascript
jQuery基于json与cookie实现购物车的方法
Apr 15 Javascript
使用Node.js给图片加水印的方法
Nov 15 Javascript
React手稿之 React-Saga的详解
Nov 12 Javascript
vue+iview动态渲染表格详解
Mar 19 Javascript
JS实现指定区域的全屏显示功能示例
Apr 25 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下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
PHP5函数小全(分享)
2013/06/06 PHP
PHP可变变量学习小结
2015/11/29 PHP
PHP使用两个栈实现队列功能的方法
2018/01/15 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
table行随鼠标移动变色示例
2014/05/07 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
react.js CMS 删除功能的实现方法
2017/04/17 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
Python中map和列表推导效率比较实例分析
2015/06/17 Python
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
python操作列表的函数使用代码详解
2017/12/28 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
pandas进行时间数据的转换和计算时间差并提取年月日
2019/07/06 Python
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
给物业的表扬信
2014/01/21 职场文书
2014年审计工作总结
2014/11/17 职场文书
优秀党员先进材料
2014/12/18 职场文书
学生检讨书范文
2015/01/27 职场文书
西安导游词
2015/02/12 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js