最近在作的微信小程序中,有這樣的需求,須要判斷用戶是分享到羣仍是好友。
微信小程序官方提供了 onShareAppMessage(options)
函數,能夠設置頁面中的轉發信息,固然,裏面也有轉發成功後的回調,咱們下面也是會用到這個轉發成功的回調函數。javascript
在頁面的 Page 中定義這個函數,參考代碼:html
Page({ onShareAppMessage: function (res) { if (res.from === 'button') { // 來自頁面內轉發按鈕 console.log(res.target) } return { title: '自定義轉發標題', path: '/page/user?id=123', success: function(res) { // 轉發成功 // 若是這裏有 shareTickets,則說明是分享到羣的 console.log(res.shareTickets) }, fail: function(res) { // 轉發失敗 } } } })
若是 success
回調裏有返回 shareTickets,則說明是分享到羣的,若是沒有則是分享到好友。java
坑來了,你若是沒有設置 wx.showShareMenu
,是沒有任何 shareTickets
返回的。小程序
尼瑪那時候試了老半天,結果就是沒有唉,必定要注意啊!
並且這個必定要在頁面進來的最開始就執行,放在 onLaunch
或者 onLoad
生命週期函數裏微信小程序
onLaunch: function (){ wx.showShareMenu({ withShareTicket: true }) }
這樣,當你分享到羣的時候,就會有 shareTickets
了。api
咱們注意到res.shareTickets
是個Array
,由於分享給好友和羣的時候,能夠多選,最多選9項。
拿到 shareTickets
以後,能夠調用 wx.getShareInfo
,獲取解密 gid
會用到的向量和加密值,傳給服務端進行解密(小程序中全部的解密操做,都放在服務端進行)。微信
wx.getShareInfo({ shareTicket: shareTicket, complete(res){ console.log(res) } })