最近比较流行的答题小程序通常会有这么一个功能,分享到群增加答题次数,分享到好友无效,那么问题来了,我们如何能够判断用户分享到的是群还是好友呢?
通过查找API文档我发现会有这个一个东西withShareTicket 通过这个来判断是否分享到的是群还是好友,想要获取到这个需要这onShow方法里填加一个东西
- //设置分享获取shareTicket
- wx.showShareMenu({
- withShareTicket: true,
- })
这个函数作用是你在分享到微信群之后可以获取
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。
微信小程序判断分享的是群还是好友
最近比较流行的答题小程序通常会有这么一个功能,分享到群增加答题次数,分享到好友无效,那么问题来了,我们如何能够判断用户分享到的是群还是好友呢?
通过查找API文档我发现会有这个一个东西withShareTicket 通过这个来判断是否分享到的是群还是好友,想要获取到这个需要这onShow方法里填加一个东西
- //设置分享获取shareTicket
- wx.showShareMenu({
- withShareTicket: true,
- })
这个函数作用是你在分享到微信群之后可以获取
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)。
好了,今天就整理这么多了,感觉我的判断逻辑不是很严谨,欢迎来指出,大家一块学习。