微信小程序转发
来源:互联网 发布:如何成为黑客 知乎 编辑:程序博客网 时间:2024/06/14 04:19
微信小程序转发涉及以下4个方法:
1、Page.onShareAppMessage({})
设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据
2、wx.showSahreMenu()
用户点击右上角后,显示“转发”按钮
3、wx.hideShareMenu()
隐藏转发按钮,无视 Page.onShareAppMessage({})
4、wx.getShareInfo({})
根据 shareTicket 获取已加密的群信息
把转发流程切分:转发前配置->转发时->转发到群组后打开->二次转发
转发流程图:
U1: 用户
T1,T2,T3:表示转发票据,即 shareTicket
G1,G2,G3:群组
1.转发前配置
在页面 onLoad 方法添加
wx.showShareMenu({ withShareTicket: true})
withShareTicket 为 true 时,表示允许转发时是否携带 shareTicket。
shareTicket 是获取转发目标群信息的票据,只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket 。
shareTicket 有两个用途:
- 用户主动转发后,获取转发到目标群群信息,对应上图UI。
- 用户在群组中打开小程序,获取群组信息,对应上图 G1 群组中的用户。
2.转发时获取群信息
当某个小程序被转发到群组后,开发者想获取到转发目标群组信息,将用户和群组做某种绑定关系(openId + openGid)。
onShareAppMessage: function () { return { title: '自定义转发标题', path: '/page/user?id=123', success: function(res) { var shareTickets = res.shareTickets; if (shareTickets.length == 0) { return false; } wx.getShareInfo({ shareTicket: shareTickets[0], success: function(res){ var encryptedData = res.encryptedData; var iv = res.iv; } }) }, fail: function(res) { // 转发失败 } } }
shareTickets 是一个数组,每一项是一个 shareTicket ,对应一个转发对象,转发给用户不会包含shareTicket。
拿到 shareTicket 之后,使用 wx.getShareInfo({}) 方法传入 shareTicket 参数,wx.getShareInfo({}) 里回调函数中包含 已加密的群信息和 向量IV。
3.转发到群组后打开
用户将小程序转发到微信群组后,群成员打开小程序,通过 shareTicket,开发者就能将群成员和群组绑定起来(openId + openGid),基于群组关系,小程序有更多的应用场景,例如:王者荣耀群排行,摩拜单车。
Page({ onLoad: function(opt) { /** 判断场景值,1044 为转发场景,包含shareTicket 参数 */ if (opt.scene == 1044) { wx.getShareInfo({ shareTicket: opt.shareTicket, success: function(res){ var encryptedData = res.encryptedData; var iv = res.iv; } }) } }})
在群组中打开小程序,页面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判断 scene 是否为1044,如果不是则不包含 opt 中 shareTicket 参数。
4.二次转发
二次转发重复前3个步骤,没什么可说的,但是有一个方向值得探讨,可否把小程序转发路径比作转发链,进而生成转发树,用数据结构方法(树、马尔科夫链)处理发现群组与群组,群组与成员之间微妙关系。
如开头那张图,我们很容易看出转发链和转发树。
转发链:U1 > G1 > G2
转发树:U1 > G1 > G2 & G3
- 微信小程序 转发
- 微信小程序转发
- 微信小程序分享转发
- 微信小程序页面内转发 按钮 转发
- 微信小程序 转发功能的实现
- 汇编端口转发程序
- socket转发程序
- 通信数据转发程序
- 自动转发报表shell程序
- node.jsUDP协议转发程序
- 小程序携带参数转发
- 微信小程序下拉刷新onPullDownRefresh和小程序分享转发onShareAppMessage
- mac本地后台调试微信小程序(思路:dmz+端口转发+https+域名解析)
- 微信小程序获取openid,api.weixin.qq.com不能设为安全域名,通过php转发
- 微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
- [微信小程序]转发(分享)和打电话功能,完整代码附效果图
- 利用“侦听-转发”程序破译网管协议
- 利用“侦听-转发”程序破译网管协议
- 【mysql】sqlalchemy commit 和 flush
- 菜鸟学习Spring——SpringMVC注解版前台向后台传值的两种方式
- Int和String的互换(记百度视频面试经历)
- [NOIP2011]计算系数 D2 T1组合数
- python中出现的__name__的原因
- 微信小程序转发
- github 提交
- 记录安装opencv的过程和碰到的问题以及解决方法
- bootstrap + validate总结
- bzoj1801 AHOI2009 chess
- 回溯法
- xpanding Rods
- 欢迎使用CSDN-markdown编辑器
- tcp状态转移