1. 程式人生 > >微信小程式判斷分享的是群還是好友 微信小程式判斷分享的是群還是好友

微信小程式判斷分享的是群還是好友 微信小程式判斷分享的是群還是好友

最近比較流行的答題小程式通常會有這麼一個功能,分享到群增加答題次數,分享到好友無效,那麼問題來了,我們如何能夠判斷使用者分享到的是群還是好友呢?

通過查詢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。


微信小程式判斷分享的是群還是好友

2018年05月03日 13:15:27 閱讀數:337

最近比較流行的答題小程式通常會有這麼一個功能,分享到群增加答題次數,分享到好友無效,那麼問題來了,我們如何能夠判斷使用者分享到的是群還是好友呢?

通過查詢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.                                 //這裡寫你分享到群之後要做的事情