小程序模板網

微信小程序轉發(fā)

發(fā)布時間:2018-04-23 12:06 所屬欄目:小程序開發(fā)教程

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

1、Page.onShareAppMessage({}) 
設置右上角“轉發(fā)”配置,及轉發(fā)后回調函數(shù)返回 shareTicket 票據 
2、wx.showSahreMenu() 
用戶點擊右上角后,顯示“轉發(fā)”按鈕 
3、wx.hideShareMenu() 
隱藏轉發(fā)按鈕,無視 Page.onShareAppMessage({}) 
4、wx.getShareInfo({}) 
根據 shareTicket 獲取已加密的群信息

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

U1: 用戶 
T1,T2,T3:表示轉發(fā)票據,即 shareTicket 
G1,G2,G3:群組

1.轉發(fā)前配置 
在頁面 onLoad 方法添加

wx.showShareMenu({
    withShareTicket: true
})


withShareTicket 為 true 時,表示允許轉發(fā)時是否攜帶 shareTicket。  shareTicket 是獲取轉發(fā)目標群信息的票據,只有擁有 shareTicket 才能拿到群信息,用戶每次轉發(fā)都會生成對應唯一的shareTicket 。

shareTicket 有兩個用途:

  • 用戶主動轉發(fā)后,獲取轉發(fā)到目標群群信息,對應上圖UI。
  • 用戶在群組中打開小程序,獲取群組信息,對應上圖 G1 群組中的用戶。

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

onShareAppMessage: function () {
    return {
      title: '自定義轉發(fā)標題',
      path: '/page/user?id=123',
      success: function(res) {
        var shareTickets = res.shareTickets;
        if (shareTickets.length == 0) {
            return false;
        }
        wx.getShareInfo({
            shareTicket: shareTickets[0],
            success: function(res){
                var encryptedData = res.encryptedData;
                var iv = res.iv;
            }
        })
      },
      fail: function(res) {
        // 轉發(fā)失敗
      }
    }
  }

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

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

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

Page({
    onLoad: function(opt) {
        /** 判斷場景值,1044 為轉發(fā)場景,包含shareTicket 參數(shù) */
        if (opt.scene == 1044) {
            wx.getShareInfo({
                shareTicket: opt.shareTicket,
                success: function(res){
                    var encryptedData = res.encryptedData;
                    var iv = res.iv;
                }
            })
        }
    }
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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

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

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



易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.u-renovate.com/wxmini/doc/course/23929.html 復制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×