通常開發(fā)者希望轉(zhuǎn)發(fā)出去的小程序被二次打開的時候能夠獲取到一些信息,例如群的標(biāo)識。現(xiàn)在通過調(diào)用 wx.showShareMenu 并且設(shè)置 withShareTicket 為 true ,當(dāng)用戶將小程序轉(zhuǎn)發(fā)到任一群聊之后,此轉(zhuǎn)發(fā)卡片在群聊中被其他用戶打開時,可以在 App.onLaunch 或 App.onShow 獲取到一個 shareTicket。通過調(diào)用 wx.getShareInfo() 接口傳入此 shareTicket 可以獲取到轉(zhuǎn)發(fā)信息。
- 和場景值scene一樣,shareTicket也是在App.onShow中獲取比較合理
- 必須在分享前調(diào)用wx.showShareMenu方法,否則不會帶分享票據(jù)

- 只有分享到任一群聊,shareTicket才會有值,否則是undefined
- shareTicket也可以用來區(qū)分轉(zhuǎn)發(fā)消息的場景
- shareTicket主要用來獲取轉(zhuǎn)發(fā)詳情,傳入wx.getShareInfo()中獲取加密數(shù)據(jù),需要后端配合,返回解密數(shù)據(jù)
注意:注意:注意
鑒于官方“分享監(jiān)聽”能力調(diào)整,網(wǎng)上90%的滯后代碼,誤人子弟,在此必須給自己一個小要求,定期復(fù)讀自己的文章,根據(jù)當(dāng)時能力水平,提高文章質(zhì)量,修正錯誤和滯后信息(吐槽一下度娘已死,沒人打我吧?打我就刪除)
類似如下代碼,現(xiàn)在已不支持回調(diào)

此次調(diào)整可能影響到三種分享功能的用法
第一種:判斷用戶是否分享成功,進而給予用戶獎勵。
例如:小程序提示用戶“分享到5個群,可以獲得一張20元的優(yōu)惠券”。
這類誘導(dǎo)用戶分享的行為是我們平臺所不倡導(dǎo)的,后續(xù)將沒有辦法實現(xiàn)。
第二種:分享完成后變更當(dāng)前的頁面狀態(tài)
例如:贈送禮品場景下,用戶點擊“贈送”按鈕,將禮品分享出去,分享成功后,界面展示“等待領(lǐng)取”。
這類場景,我們建議可以適當(dāng)調(diào)整交互方案。例如在分享后繼續(xù)保留“贈送”按鈕,但在頁面上提示用戶一個禮品只能被一人領(lǐng)取,重復(fù)贈送無效。
第三種:通過用戶分享之后的 shareTicket 獲取群唯一標(biāo)識 openGId ,以顯示對應(yīng)群的相關(guān)信息。
例如:通過分享小程序到某個群里,可以查看該群內(nèi)成員的排行榜。
此次調(diào)整后,用戶分享完成后無法立刻顯示該群的排行榜信息,但仍可在用戶從群消息點擊進入小程序時顯示該群的排行榜信息。
分享監(jiān)聽能力調(diào)整后,對于分享的騷操作基本在App.onShow中進行,相當(dāng)于授權(quán)那樣,必須打開轉(zhuǎn)發(fā)消息才能獲取轉(zhuǎn)發(fā)詳情,
下面用代碼來給大家分析分析。
方案:微信在更新分享接口后,原有的在onShareAppMessage中直接拿shareTicket已不復(fù)存在。根據(jù)最新文檔顯示,需要在App.onLaunch()跟App.onShow()中獲取。
index.js

index.wxml

app.js

這里也是需要用到解密的,和運動步數(shù)的那篇文章一樣解密就可以了,然后返回openGid 就好了。
注意事項
1:必須調(diào)用這個接口wx.showShareMenu({withShareTicket: true}),否則在App.onLaunch()跟App.onShow()時,你拿不到shareTicket.
2:微信開發(fā)者工具可以模擬1044的場景,但是不會顯示群名稱,因為你不在群里。所以測試的時候,自己拉個微信群,然后分享到測試群,就能拿到群名稱。