微信小程序判斷分享的是羣還是好友 微信小程序判斷分享的是羣還是好友

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

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

好了,今天就整理這麼多了,感覺我的判斷邏輯不是很嚴謹,歡迎來指出,大家一塊學習。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章