微信小程序 轉發功能的實現
1.當用戶將小程序轉發到任一群聊之后,可以獲取到此次轉發的 shareTicket
2.此轉發卡片在群聊中被其他用戶打開時,可以在 App.onLaunch() 或 App.onShow 獲取到另一個 shareTicket
3.兩步獲取到的 shareTicket 均可通過 wx.getShareInfo() 接口可以獲取到相同的轉發信息。
onShareAppMessage(options)函數設置該頁面的轉發信息。
options參數說明:
from:轉發事件來源。button:頁面內轉發按鈕;menu:右上角轉發菜單;
target:如果 from 值是 button,則 target 是觸發這次轉發事件的 button,否則為 undefined
自定義字段:
return { title: '轉發', // 轉發標題(默認:當前小程序名稱) path: '/pages/index/index', // 轉發路徑(當前頁面 path ),必須是以 / 開頭的完整路徑 success(e) { // shareAppMessage: ok, // shareTickets 數組,每一項是一個 shareTicket ,對應一個轉發對象 // 需要在頁面onLoad()事件中實現接口 wx.showShareMenu({ // 要求小程序返回分享目標信息 withShareTicket: true }); }, fail(e) { // shareAppMessage:fail cancel // shareAppMessage:fail(detail message) }, complete() { }}
wx.showShareMenu(OBJECT) 帶 shareTicket 的轉發。
1.在SDK中與真機調試的過程中,都需要設withShareTicket為true,
2.否則在真機的調試過程中,即便選擇了轉發的群聊,也不會返回shareTicket
onLoad(e) { wx.showShareMenu({ withShareTicket: true }) }, onShow(e) { wx.showShareMenu({ withShareTicket: true }) },
wx.getShareInfo(OBJECT)獲取轉發詳細信息
if (res.shareTickets) { // 獲取轉發詳細信息 wx.getShareInfo({ shareTicket: res.shareTickets[0], success(res) { res.errMsg; // 錯誤信息 res.encryptedData; // 解密后為一個 JSON 結構(openGId 群對當前小程序的唯一 ID) res.iv; // 加密算法的初始向量 }, fail() {}, complete() {} });}
小程序在群里被打開后,獲取情景值和shareTicket
//app.jsApp({ onLaunch: function (ops) { if (ops.scene == 1044) { console.log(ops.shareTicket) } }})
Bug & Tip
1.頁面之間的參數傳遞,需要在onLoad()函數中接收,onShow()函數中無法接收。
2.獲取群聊中被打開的小程序的shareTicket,需要在App.onLaunch() 或 App.onShow()。 頁面的生命周期函數中是獲取不到的。
3.將轉發內容至單個用戶時,是無法獲取到shareTicket 。
以上就是微信小程序 轉發功能 的實現,如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答