|
微信小程序轉(zhuǎn)發(fā)涉及以下4個(gè)方法:
1、Page.onShareAppMessage({})
把轉(zhuǎn)發(fā)流程切分:轉(zhuǎn)發(fā)前配置->轉(zhuǎn)發(fā)時(shí)->轉(zhuǎn)發(fā)到群組后打開(kāi)->二次轉(zhuǎn)發(fā)
這里寫(xiě)圖片描述
U1: 用戶
1.轉(zhuǎn)發(fā)前配置
withShareTicket 為 true 時(shí),表示允許轉(zhuǎn)發(fā)時(shí)是否攜帶 shareTicket。 shareTicket 是獲取轉(zhuǎn)發(fā)目標(biāo)群信息的票據(jù),只有擁有 shareTicket 才能拿到群信息,用戶每次轉(zhuǎn)發(fā)都會(huì)生成對(duì)應(yīng)唯一的shareTicket 。 shareTicket 有兩個(gè)用途: 用戶主動(dòng)轉(zhuǎn)發(fā)后,獲取轉(zhuǎn)發(fā)到目標(biāo)群群信息,對(duì)應(yīng)上圖UI。 用戶在群組中打開(kāi)小程序,獲取群組信息,對(duì)應(yīng)上圖 G1 群組中的用戶。 2.轉(zhuǎn)發(fā)時(shí)獲取群信息 當(dāng)某個(gè)小程序被轉(zhuǎn)發(fā)到群組后,開(kāi)發(fā)者想獲取到轉(zhuǎn)發(fā)目標(biāo)群組信息,將用戶和群組做某種綁定關(guān)系(openId + openGid)。
shareTickets 是一個(gè)數(shù)組,每一項(xiàng)是一個(gè) shareTicket ,對(duì)應(yīng)一個(gè)轉(zhuǎn)發(fā)對(duì)象,轉(zhuǎn)發(fā)給用戶不會(huì)包含shareTicket。 拿到 shareTicket 之后,使用 wx.getShareInfo({}) 方法傳入 shareTicket 參數(shù),wx.getShareInfo({}) 里回調(diào)函數(shù)中包含 已加密的群信息和 向量IV。 3.轉(zhuǎn)發(fā)到群組后打開(kāi) 用戶將小程序轉(zhuǎn)發(fā)到微信群組后,群成員打開(kāi)小程序,通過(guò) shareTicket,開(kāi)發(fā)者就能將群成員和群組綁定起來(lái)(openId + openGid),基于群組關(guān)系,小程序有更多的應(yīng)用場(chǎng)景,例如:王者榮耀群排行,摩拜單車。
在群組中打開(kāi)小程序,頁(yè)面onLoad 或 onShow 方法包含 scene 和 shareTicket,需要判斷 scene 是否為1044,如果不是則不包含 opt 中 shareTicket 參數(shù)。 4.二次轉(zhuǎn)發(fā) 二次轉(zhuǎn)發(fā)重復(fù)前3個(gè)步驟,沒(méi)什么可說(shuō)的,但是有一個(gè)方向值得探討,可否把小程序轉(zhuǎn)發(fā)路徑比作轉(zhuǎn)發(fā)鏈,進(jìn)而生成轉(zhuǎn)發(fā)樹(shù),用數(shù)據(jù)結(jié)構(gòu)方法(樹(shù)、馬爾科夫鏈)處理發(fā)現(xiàn)群組與群組,群組與成員之間微妙關(guān)系。 如開(kāi)頭那張圖,我們很容易看出轉(zhuǎn)發(fā)鏈和轉(zhuǎn)發(fā)樹(shù)。 轉(zhuǎn)發(fā)鏈:U1 > G1 > G2 轉(zhuǎn)發(fā)樹(shù):U1 > G1 > G2 & G3 |