通常開發者希望轉發出去的小程序被二次打開的時候能夠獲取到一些信息,例如群的標識?,F在通過調用 wx.showShareMenu 并且設置 withShareTicket 為 true ,當用戶將小程序轉發到任一群聊之后,此轉發卡片在群聊中被其他用戶打開時,可以在 App.onLaunch 或 App.onShow 獲取到一個 shareTicket。通過調用 wx.getShareInfo() 接口傳入此 shareTicket 可以獲取到轉發信息。
- 和場景值scene一樣,shareTicket也是在App.onShow中獲取比較合理
- 必須在分享前調用wx.showShareMenu方法,否則不會帶分享票據
- 只有分享到任一群聊,shareTicket才會有值,否則是undefined
- shareTicket也可以用來區分轉發消息的場景
- shareTicket主要用來獲取轉發詳情,傳入wx.getShareInfo()中獲取加密數據,需要后端配合,返回解密數據
注意:注意:注意
鑒于官方“分享監聽”能力調整,網上90%的滯后代碼,誤人子弟,在此必須給自己一個小要求,定期復讀自己的文章,根據當時能力水平,提高文章質量,修正錯誤和滯后信息(吐槽一下度娘已死,沒人打我吧?打我就刪除)
類似如下代碼,現在已不支持回調
此次調整可能影響到三種分享功能的用法
第一種:判斷用戶是否分享成功,進而給予用戶獎勵。
例如:小程序提示用戶“分享到5個群,可以獲得一張20元的優惠券”。
這類誘導用戶分享的行為是我們平臺所不倡導的,后續將沒有辦法實現。
第二種:分享完成后變更當前的頁面狀態
例如:贈送禮品場景下,用戶點擊“贈送”按鈕,將禮品分享出去,分享成功后,界面展示“等待領取”。
這類場景,我們建議可以適當調整交互方案。例如在分享后繼續保留“贈送”按鈕,但在頁面上提示用戶一個禮品只能被一人領取,重復贈送無效。
第三種:通過用戶分享之后的 shareTicket 獲取群唯一標識 openGId ,以顯示對應群的相關信息。
例如:通過分享小程序到某個群里,可以查看該群內成員的排行榜。
此次調整后,用戶分享完成后無法立刻顯示該群的排行榜信息,但仍可在用戶從群消息點擊進入小程序時顯示該群的排行榜信息。
分享監聽能力調整后,對于分享的騷操作基本在App.onShow中進行,相當于授權那樣,必須打開轉發消息才能獲取轉發詳情,
下面用代碼來給大家分析分析。
方案:微信在更新分享接口后,原有的在onShareAppMessage中直接拿shareTicket已不復存在。根據最新文檔顯示,需要在App.onLaunch()跟App.onShow()中獲取。
index.js
index.wxml
app.js
這里也是需要用到解密的,和運動步數的那篇文章一樣解密就可以了,然后返回openGid 就好了。
注意事項
1:必須調用這個接口wx.showShareMenu({withShareTicket: true}),否則在App.onLaunch()跟App.onShow()時,你拿不到shareTicket.
2:微信開發者工具可以模擬1044的場景,但是不會顯示群名稱,因為你不在群里。所以測試的時候,自己拉個微信群,然后分享到測試群,就能拿到群名稱。