微信小程序—轉(zhuǎn)發(fā)組件開發(fā)

微信小程序轉(zhuǎn)發(fā)涉及以下4個方法:

1、Page.onShareAppMessage({})

設(shè)置右上角“轉(zhuǎn)發(fā)”配置,及轉(zhuǎn)發(fā)后回調(diào)函數(shù)返回 shareTicket 票據(jù)

2、wx.showSahreMenu()

用戶點擊右上角后,顯示“轉(zhuǎn)發(fā)”按鈕

3、wx.hideShareMenu()

隱藏轉(zhuǎn)發(fā)按鈕,無視 Page.onShareAppMessage({})

4、wx.getShareInfo({})

根據(jù) shareTicket 獲取已加密的群信息

把轉(zhuǎn)發(fā)流程切分:轉(zhuǎn)發(fā)前配置->轉(zhuǎn)發(fā)時->轉(zhuǎn)發(fā)到群組后打開->二次轉(zhuǎn)發(fā)

轉(zhuǎn)發(fā)流程圖:

U1: 用戶

T1,T2,T3:表示轉(zhuǎn)發(fā)票據(jù),即 shareTicket

G1,G2,G3:群組

1.轉(zhuǎn)發(fā)前配置

在頁面 onLoad 方法添加

withShareTicket 為 true 時,表示允許轉(zhuǎn)發(fā)時是否攜帶 shareTicket。

shareTicket 是獲取轉(zhuǎn)發(fā)目標群信息的票據(jù),只有擁有 shareTicket 才能拿到群信息,用戶每次轉(zhuǎn)發(fā)都會生成對應(yīng)唯一的shareTicket 。

shareTicket 有兩個用途:

用戶主動轉(zhuǎn)發(fā)后,獲取轉(zhuǎn)發(fā)到目標群群信息,對應(yīng)上圖UI。

用戶在群組中打開小程序,獲取群組信息,對應(yīng)上圖 G1 群組中的用戶。

2.轉(zhuǎn)發(fā)時獲取群信息

當某個小程序被轉(zhuǎn)發(fā)到群組后,開發(fā)者想獲取到轉(zhuǎn)發(fā)目標群組信息,將用戶和群組做某種綁定關(guān)系(openId + openGid)。

shareTickets 是一個數(shù)組,每一項是一個 shareTicket ,對應(yīng)一個轉(zhuǎn)發(fā)對象,轉(zhuǎn)發(fā)給用戶不會包含shareTicket。

拿到 shareTicket 之后,使用 wx.getShareInfo({}) 方法傳入 shareTicket 參數(shù),wx.getShareInfo({}) 里回調(diào)函數(shù)中包含 已加密的群信息和 向量IV。

3.轉(zhuǎn)發(fā)到群組后打開

用戶將小程序轉(zhuǎn)發(fā)到微信群組后,群成員打開小程序,通過 shareTicket,開發(fā)者就能將群成員和群組綁定起來(openId + openGid),基于群組關(guān)系,小程序有更多的應(yīng)用場景,例如:王者榮耀群排行,摩拜單車。

在群組中打開小程序,頁面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判斷 scene 是否為1044,如果不是則不包含 opt 中 shareTicket 參數(shù)。

4.二次轉(zhuǎn)發(fā)

二次轉(zhuǎn)發(fā)重復(fù)前3個步驟,沒什么可說的,但是有一個方向值得探討,可否把小程序轉(zhuǎn)發(fā)路徑比作轉(zhuǎn)發(fā)鏈,進而生成轉(zhuǎn)發(fā)樹,用數(shù)據(jù)結(jié)構(gòu)方法(樹、馬爾科夫鏈)處理發(fā)現(xiàn)群組與群組,群組與成員之間微妙關(guān)系。

如開頭那張圖,我們很容易看出轉(zhuǎn)發(fā)鏈和轉(zhuǎn)發(fā)樹。

轉(zhuǎn)發(fā)鏈:U1 > G1 > G2

轉(zhuǎn)發(fā)樹:U1 > G1 > G2 & G3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容