
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 方法添加
withShareTicket 为 true 时,表示允许转发时是否携带 shareTicket。
shareTicket 是获取转发目标群信息的票据,只有拥有 shareTicket 才能拿到群信息,用户每次转发都会生成对应唯一的shareTicket 。
shareTicket 有两个用途:
用户主动转发后,获取转发到目标群群信息,对应上图UI。
用户在群组中打开小程序,获取群组信息,对应上图 G1 群组中的用户。
2.转发时获取群信息
当某个小程序被转发到群组后,开发者想获取到转发目标群组信息,将用户和群组做某种绑定关系(openId + openGid)。
shareTickets 是一个数组,每一项是一个 shareTicket ,对应一个转发对象,转发给用户不会包含shareTicket。
拿到 shareTicket 之后,使用 wx.getShareInfo({}) 方法传入 shareTicket 参数,wx.getShareInfo({}) 里回调函数誉纤悄中包含 已加密的群信息和 向量IV。
3.转发到群组后打开
用户将小程序转发到微信群组后,群成员打开小程序,通过 shareTicket,开发者就能将群成员和群组绑定起竖早来(openId + openGid),基于群组关系,小程序有更多的应用场景,例如:王者荣耀群排行,摩拜单车。
在群组中打开小程序,页面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判断 scene 是否为1044,如果不是则不包含 opt 中 shareTicket 参数。
4.二次转发
二次转发重复前3个步骤,没什么可说的,但是有一个方向值得探讨,可否把小程序转发路径比作转发链,进而生成转发树,用数据结构方法(树、马尔科夫链)处理发现群组与群组,群组与成员之间微妙关系。
如开头那张图,我们很容易看出转发链和转发树。
转发链:U1 >G1 >G2
转发庆渣树:U1 >G1 >G2 &G3
正常的分享掘闹则的成功回调是不会有shareTicket 详情的
可以在onLoad中添加wx.showShareMenu并设置withShareTicket:true才能获取到
然后调用wx.getShareInfo,就能获取到数据弯盯,然后将数据判棚要转到后台进行解析
后台解析后结果为
openGID是微信分发的唯一群标识,可以通过群ID判断用户是否来自同一个微信群,更多东西就大家一起继续探索吧,如果有什么意见或不足的,欢迎在下方评论区踊跃发表您的高见!
一、多个页面设置回调变量在多槐纤个页面设置回调变量时,可以在app.js中设置一个全局变量:
const globalData = {
name: '',
age: ''
}
App({
globalData:globalData
})
然后在需要使用回调变量的页面中调用:
Page({
data:{
name:'',
age:'铅晌仿'
}
onLoad:function(){
this.setData({
name:app.globalData.name,
age:app.globalData.age
})
}
})
二、单个页面设置回调变量
在单个页面设置回调变量时,可以使用wx.setStorage和wx.getStorage来保存和获取回调变量:
//设置回调谨返变量
wx.setStorage({
key:"name",
data:"张三"
})
//获取回调变量
wx.getStorage({
key:"name",
success: function(res) {
console.log(res.data)
}
})
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)