微信小程序转发涉及如下4个方法:javascript
一、Page.onShareAppMessage({})
设置右上角“转发”配置,及转发后回调函数返回 shareTicket 票据
二、wx.showSahreMenu()
用户点击右上角后,显示“转发”按钮
三、wx.hideShareMenu()
隐藏转发按钮,无视 Page.onShareAppMessage({})
四、wx.getShareInfo({})
根据 shareTicket 获取已加密的群信息css
1.转发前配置
在页面 onLoad 方法添加java
wx.showShareMenu({ withShareTicket: true })
withShareTicket 为 true 时,表示容许转发时是否携带 shareTicket。
shareTicket 是获取转发目标群信息的票据,只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应惟一的shareTicket 。小程序
shareTicket 有两个用途:微信小程序
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。markdown
3.转发到群组后打开
用户将小程序转发到微信群组后,群成员打开小程序,经过 shareTicket,开发者就能将群成员和群组绑定起来(openId + openGid),基于群组关系,小程序有更多的应用场景,例如:王者荣耀群排行,摩拜单车。ide
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 参数。函数