溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信小程序轉(zhuǎn)發(fā)功能如何實(shí)現(xiàn)

發(fā)布時(shí)間:2022-03-08 09:58:17 來(lái)源:億速云 閱讀:453 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“微信小程序轉(zhuǎn)發(fā)功能如何實(shí)現(xiàn)”,在日常操作中,相信很多人在微信小程序轉(zhuǎn)發(fā)功能如何實(shí)現(xiàn)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”微信小程序轉(zhuǎn)發(fā)功能如何實(shí)現(xiàn)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

  微信小程序轉(zhuǎn)發(fā)功能如何實(shí)現(xiàn)

  小程序轉(zhuǎn)發(fā)功能是小程序最基本的功能,有四種方法可以實(shí)現(xiàn)這一效果。

  1、Page.onShareAppMessage({})

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

  2、wx.showSahreMenu()

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

  3、wx.hideShareMenu()

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

  4、wx.getShareInfo({})

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

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

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

微信小程序轉(zhuǎn)發(fā)功能如何實(shí)現(xiàn)

  這里寫(xiě)圖片描述

  U1: 用戶

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

  G1,G2,G3:群組

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

  在頁(yè)面 onLoad 方法添加

  1 wx.showShareMenu({

  2 withShareTicket: true

  3 })

  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)。

  1 onShareAppMessage: function () {

  2 return {

  3 title: '自定義轉(zhuǎn)發(fā)標(biāo)題',

  4 path: '/page/user?id=123',

  5 success: function(res) {

  6 var shareTickets = res.shareTickets;

  7 if (shareTickets.length == 0) {

  8 return false;

  9 }

  10 wx.getShareInfo({

  11 shareTicket: shareTickets[0],

  12 success: function(res){

  13 var encryptedData = res.encryptedData;

  14 var iv = res.iv;

  15 }

  16 })

  17 },

  18 fail: function(res) {

  19 // 轉(zhuǎn)發(fā)失敗

  20 }

  21 }

  22 }

  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)景,例如:王者榮耀群排行,摩拜單車。

  1 Page({

  2 onLoad: function(opt) {

  3 /** 判斷場(chǎng)景值,1044 為轉(zhuǎn)發(fā)場(chǎng)景,包含shareTicket 參數(shù) */

  4 if (opt.scene == 1044) {

  5 wx.getShareInfo({

  6 shareTicket: opt.shareTicket,

  7 success: function(res){

  8 var encryptedData = res.encryptedData;

  9 var iv = res.iv;

  10 }

  11 })

  12 }

  13 }

  14 })

  在群組中打開(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

到此,關(guān)于“微信小程序轉(zhuǎn)發(fā)功能如何實(shí)現(xiàn)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI