微信小程序判断分享的是群还是好友 微信小程序判断分享的是群还是好友

最近比较流行的答题小程序通常会有这么一个功能,分享到群增加答题次数,分享到好友无效,那么问题来了,我们如何能够判断用户分享到的是群还是好友呢?

通过查找API文档我发现会有这个一个东西withShareTicket 通过这个来判断是否分享到的是群还是好友,想要获取到这个需要这onShow方法里填加一个东西

[javascript]  view plain  copy
  1. //设置分享获取shareTicket  
  2.         wx.showShareMenu({  
  3.             withShareTicket: true,  
  4.         })  
只有设置了这个等于true才能够获取到群信息。但是问题又来了IOS系统和Android系统的判断方式是不一样的,我来说一下他们两个的区别:
这个函数作用是你在分享到微信群之后可以获取 shareTickets
通过 wx.getShareInfo() shareTickets ,可以获取到分享群的加密过的信息。
这里要注意下如果分享的是个人 android 仍然可以获取到 shareTickets
ios 分享到个人是获取不到 shareTickets 的。
如果是 ios 你可以在直接用 if() 判断 shareTickets 是否存在判断是否转发的是微信群。
如果是 android 你要执行 wx.getShareInfo() 函数,如果是微信群就会调用 success ,不是微信群就会调用 fail
必须调用wx.getshareInfo()获取群信息 包括 iv、 encryptedData(换取openGId)
现在上一下完整的代码:
[javascript]  view plain  copy
  1. //分享  
  2. onShareAppMessage: function (res) {  
  3.     let that = this  
  4.     return {  
  5.         title: '分享的标题',  
  6.         path: '分享的页面链接',  
  7.         success: function (res) {  
  8.             //getSystemInfo是为了获取当前设备信息,判断是android还是ios,如果是android  
  9.             //还需要调用wx.getShareInfo(),只有当成功回调才是转发群,ios就只需判断shareTickets  
  10.             //获取用户设备信息  
  11.             wx.getSystemInfo({  
  12.                 success: function (d) {  
  13.                     console.log(d);  
  14.                     //判断用户手机是IOS还是Android  
  15.                     if (d.platform == 'android') {  
  16.                         wx.getShareInfo({//获取群详细信息  
  17.                             shareTicket: res.shareTickets,  
  18.                             success: function (res) {  
  19.                                 //这里写你分享到群之后要做的事情,比如增加次数什么的  
  20.                             },  
  21.                             fail: function (res) {//这个方法就是分享到的是好友,给一个提示  
  22.                                 wx.showModal({  
  23.                                     title: '提示',  
  24.                                     content: '分享好友无效,请分享群',  
  25.                                     success: function (res) {  
  26.                                         if (res.confirm) {  
  27.                                             console.log('用户点击确定')  
  28.                                         } else if (res.cancel) {  
  29.                                             console.log('用户点击取消')  
  30.                                         }  
  31.                                     }  
  32.                                 })  
  33.                             }  
  34.                         })  
  35.                     }  
  36.                     if (d.platform == 'ios') {//如果用户的设备是IOS  
  37.                         if (res.shareTickets != undefined) {  
  38.                             console.log("分享的是群");  
  39.                             wx.getShareInfo({  
  40.                                 shareTicket: res.shareTickets,  
  41.                                 success: function (res) {  
  42.                                     //分享到群之后你要做的事情  
  43.                                 }  
  44.                             })  
  45.   
  46.                         } else {//分享到个人要做的事情,我给的是一个提示  
  47.                             console.log("分享的是个人");  
  48.                             wx.showModal({  
  49.                                 title: '提示',  
  50.                                 content: '分享好友无效,请分享群',  
  51.                                 success: function (res) {  
  52.                                     if (res.confirm) {  
  53.                                         console.log('用户点击确定')  
  54.                                     } else if (res.cancel) {  
  55.                                         console.log('用户点击取消')  
  56.                                     }  
  57.                                 }  
  58.                             })  
  59.                         }  
  60.                     }  
  61.   
  62.                 },  
  63.                 fail: function (res) {  
  64.   
  65.                 }  
  66.             })  
  67.         }  
  68.   
  69.     }  
  70. },  

这里说一下分享到群的话,需要把返回的 iv,encryptedData,传给后台换取openGId。


微信小程序判断分享的是群还是好友

最近比较流行的答题小程序通常会有这么一个功能,分享到群增加答题次数,分享到好友无效,那么问题来了,我们如何能够判断用户分享到的是群还是好友呢?

通过查找API文档我发现会有这个一个东西withShareTicket 通过这个来判断是否分享到的是群还是好友,想要获取到这个需要这onShow方法里填加一个东西

[javascript]  view plain  copy
  1. //设置分享获取shareTicket  
  2.         wx.showShareMenu({  
  3.             withShareTicket: true,  
  4.         })  
只有设置了这个等于true才能够获取到群信息。但是问题又来了IOS系统和Android系统的判断方式是不一样的,我来说一下他们两个的区别:
这个函数作用是你在分享到微信群之后可以获取 shareTickets
通过 wx.getShareInfo() shareTickets ,可以获取到分享群的加密过的信息。
这里要注意下如果分享的是个人 android 仍然可以获取到 shareTickets
ios 分享到个人是获取不到 shareTickets 的。
如果是 ios 你可以在直接用 if() 判断 shareTickets 是否存在判断是否转发的是微信群。
如果是 android 你要执行 wx.getShareInfo() 函数,如果是微信群就会调用 success ,不是微信群就会调用 fail
必须调用wx.getshareInfo()获取群信息 包括 iv、 encryptedData(换取openGId)
现在上一下完整的代码:
[javascript]  view plain  copy
  1. //分享  
  2. onShareAppMessage: function (res) {  
  3.     let that = this  
  4.     return {  
  5.         title: '分享的标题',  
  6.         path: '分享的页面链接',  
  7.         success: function (res) {  
  8.             //getSystemInfo是为了获取当前设备信息,判断是android还是ios,如果是android  
  9.             //还需要调用wx.getShareInfo(),只有当成功回调才是转发群,ios就只需判断shareTickets  
  10.             //获取用户设备信息  
  11.             wx.getSystemInfo({  
  12.                 success: function (d) {  
  13.                     console.log(d);  
  14.                     //判断用户手机是IOS还是Android  
  15.                     if (d.platform == 'android') {  
  16.                         wx.getShareInfo({//获取群详细信息  
  17.                             shareTicket: res.shareTickets,  
  18.                             success: function (res) {  
  19.                                 //这里写你分享到群之后要做的事情,比如增加次数什么的  
  20.                             },  
  21.                             fail: function (res) {//这个方法就是分享到的是好友,给一个提示  
  22.                                 wx.showModal({  
  23.                                     title: '提示',  
  24.                                     content: '分享好友无效,请分享群',  
  25.                                     success: function (res) {  
  26.                                         if (res.confirm) {  
  27.                                             console.log('用户点击确定')  
  28.                                         } else if (res.cancel) {  
  29.                                             console.log('用户点击取消')  
  30.                                         }  
  31.                                     }  
  32.                                 })  
  33.                             }  
  34.                         })  
  35.                     }  
  36.                     if (d.platform == 'ios') {//如果用户的设备是IOS  
  37.                         if (res.shareTickets != undefined) {  
  38.                             console.log("分享的是群");  
  39.                             wx.getShareInfo({  
  40.                                 shareTicket: res.shareTickets,  
  41.                                 success: function (res) {  
  42.                                     //分享到群之后你要做的事情  
  43.                                 }  
  44.                             })  
  45.   
  46.                         } else {//分享到个人要做的事情,我给的是一个提示  
  47.                             console.log("分享的是个人");  
  48.                             wx.showModal({  
  49.                                 title: '提示',  
  50.                                 content: '分享好友无效,请分享群',  
  51.                                 success: function (res) {  
  52.                                     if (res.confirm) {  
  53.                                         console.log('用户点击确定')  
  54.                                     } else if (res.cancel) {  
  55.                                         console.log('用户点击取消')  
  56.                                     }  
  57.                                 }  
  58.                             })  
  59.                         }  
  60.                     }  
  61.   
  62.                 },  
  63.                 fail: function (res) {  
  64.   
  65.                 }  
  66.             })  
  67.         }  
  68.   
  69.     }  
  70. },  

这里说一下分享到群的话,需要把返回的 iv,encryptedData,传给后台换取openGId(群ID)。

好了,今天就整理这么多了,感觉我的判断逻辑不是很严谨,欢迎来指出,大家一块学习。


猜你喜欢

转载自blog.csdn.net/mzqadl/article/details/80812221