最近比较流行的答题小程序通常会有这么一个功能,分享到群增加答题次数,分享到好友无效,那么问题来了,我们如何能够判断用户分享到的是群还是好友呢?
通过查找API文档我发现会有这个一个东西withShareTicket 通过这个来判断是否分享到的是群还是好友,想要获取到这个需要这onShow方法里填加一个东西
//设置分享获取shareTicket wx.showShareMenu({ withShareTicket: true, })只有设置了这个等于true才能够获取到群信息。但是问题又来了IOS系统和Android系统的判断方式是不一样的,我来说一下他们两个的区别:
这个函数作用是你在分享到微信群之后可以获取shareTickets,
通过wx.getShareInfo()和shareTickets,可以获取到分享群的加密过的信息。
这里要注意下如果分享的是个人android仍然可以获取到shareTickets,
而ios分享到个人是获取不到shareTickets的。
如果是ios你可以在直接用if()判断shareTickets是否存在判断是否转发的是微信群。
如果是android你要执行wx.getShareInfo()函数,如果是微信群就会调用success,不是微信群就会调用fail。
必须调用wx.getshareInfo()获取群信息 包括 iv、encryptedData(换取openGId)
现在上一下完整的代码:
//分享 onShareAppMessage: function (res) { let that = this return { title: '分享的标题', path: '分享的页面链接', success: function (res) { //getSystemInfo是为了获取当前设备信息,判断是android还是ios,如果是android //还需要调用wx.getShareInfo(),只有当成功回调才是转发群,ios就只需判断shareTickets //获取用户设备信息 wx.getSystemInfo({ success: function (d) { console.log(d); //判断用户手机是IOS还是Android if (d.platform == 'android') { wx.getShareInfo({//获取群详细信息 shareTicket: res.shareTickets, success: function (res) { //这里写你分享到群之后要做的事情,比如增加次数什么的 }, fail: function (res) {//这个方法就是分享到的是好友,给一个提示 wx.showModal({ title: '提示', content: '分享好友无效,请分享群', success: function (res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }) } }) } if (d.platform == 'ios') {//如果用户的设备是IOS if (res.shareTickets != undefined) { console.log("分享的是群"); wx.getShareInfo({ shareTicket: res.shareTickets, success: function (res) { //分享到群之后你要做的事情 } }) } else {//分享到个人要做的事情,我给的是一个提示 console.log("分享的是个人"); wx.showModal({ title: '提示', content: '分享好友无效,请分享群', success: function (res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }) } } }, fail: function (res) { } }) } } },这里说一下分享到群的话,需要把返回的 iv,encryptedData,传给后台换取openGId(群ID)。
好了,今天就整理这么多了,感觉我的判断逻辑不是很严谨,欢迎来指出,大家一块学习。
想要获得更多资料的 请微信搜索公众号 【热血科技】,关注一下即可。













