1. 程式人生 > 其它 >群使用者通過微信小程式可以更好地協作了

群使用者通過微信小程式可以更好地協作了

  今天,小程式向開發者開放了群ID的介面能力。簡單地說,就是當你把小程式分享在群聊中,被點選後開發者可獲取群ID和群名稱,也方便更好地針對群場景提供個性化服務。不同的群有各自的群ID,那麼這個新能力開發者該怎麼使用?

群使用者間可以更好地協作 大家都知道,小程式可以方便地在群聊中分享,但開發者難以識別不同使用者的點選路徑。

現在,通過最新的介面能力,開發者可以通過群ID判斷使用者是否來自同一個微信群,同一個群內的使用者之間可以更好地使用小程式進行協作,例如共同編輯文件、協同合作、共同點餐等等。 提供更個性化的服務 通過不同的群ID,開發者可以針對各個微信群提供更個性化的服務和內容,滿足不同使用者的多樣需求。

onShareAppMessage

在 Page 中定義 onShareAppMessage 函式,設定該頁面的分享資訊。

  • 只有定義了此事件處理函式,右上角選單才會顯示 “分享” 按鈕
  • 使用者點選分享按鈕的時候會呼叫
  • 此事件需要 return 一個 Object,用於自定義分享內容

自定義分享欄位

欄位

說明

預設值

最低版本

title

分享標題

當前小程式名稱

path

分享路徑

當前頁面 path ,必須是以 / 開頭的完整路徑

success

分享成功的回撥函式

1.1.0

fail

分享失敗的回撥函式

1.1.0

complete

分享結束的回撥函式(分享成功、失敗都會執行

1.1.0

回撥結果:

回撥型別

errMsg

說明

success

shareAppMessage:ok

分享成功

fail

shareAppMessage:fail cancel

使用者取消分享

fail

shareAppMessage:fail (detail message)

分享失敗,其中 detail message 為詳細失敗資訊

success回撥引數說明:

引數

型別

說明

最低版本

shareTickets

Array String

shareTicket 陣列,每一項是一個 shareTicket ,對應一個分享物件

1.1.0

示例程式碼:

Page({
  onShareAppMessage: function () {
    return {
      title: '自定義分享標題',
      path: '/page/user?id=123',
      success: function(res) {
        // 分享成功
      },
      fail: function(res) {
        // 分享失敗
      }
    }
  }
})

wx.showShareMenu(OBJECT)

基礎庫 1.1.0 開始支援,低版本需做相容處理

顯示當前頁面的分享按鈕

OBJECT引數說明:

引數

型別

必填

說明

withShareTicket

Boolean

是否使用帶 shareTicket 的分享詳情

success

Function

介面呼叫成功的回撥函式

fail

Function

介面呼叫失敗的回撥函式

complete

Function

介面呼叫結束的回撥函式(呼叫成功、失敗都會執行)

示例程式碼:

wx.showShareMenu({
  withShareTicket: true
})

wx.hideShareMenu(OBJECT)

基礎庫 1.1.0 開始支援,低版本需做相容處理

隱藏分享按鈕

OBJECT引數說明:

引數

型別

必填

說明

success

Function

介面呼叫成功的回撥函式

fail

Function

介面呼叫失敗的回撥函式

complete

Function

介面呼叫結束的回撥函式(呼叫成功、失敗都會執行)

示例程式碼:

wx.hideShareMenu()

wx.getShareInfo(OBJECT)

基礎庫 1.1.0 開始支援,低版本需做相容處理

獲取分享詳細資訊

OBJECT引數說明:

引數

型別

必填

說明

shareTicket

String

shareTicket

success

Function

介面呼叫成功的回撥函式

fail

Function

介面呼叫失敗的回撥函式

complete

Function

介面呼叫結束的回撥函式(呼叫成功、失敗都會執行)

CALLBACK 引數說明:

引數

型別

說明

errMsg

String

錯誤資訊

roomTopic

String

群名稱

rawData

String

不包括敏感資訊的原始資料字串,用於計算簽名。

signature

String

使用 sha1( rawData + sessionkey ) 得到字串,用於校驗分享資訊,參考文件signature。

encryptedData

String

包括敏感資料在內的完整分享資訊的加密資料,詳細見加密資料解密演算法

iv

String

加密演算法的初始向量,詳細見加密資料解密演算法

encryptedData 解密後為一個 JSON 結構,包含欄位如下:

欄位

說明

openGId

群對當前小程式的唯一 ID

roomTopic

群名稱

獲取更多分享資訊

通常開發者希望分享出去的小程式被二次開啟的時候能夠獲取到一些資訊,例如群聊名字或者是群的標識。現在通過呼叫 wx.showShareMenu 並且設定 withShareTicket 為 true ,當用戶將小程式分享到任一群聊之後,可以獲取到此次分享的 shareTicket,此分享卡片在群聊中被其他使用者開啟時,可以在 App.onLaunch() 獲取到另一個shareTicket。這兩步獲取到的 shareTicket 均可通過 wx.getShareInfo() 介面可以獲取到相同的分享資訊。

Bug & Tip

  1. tip: 分享圖片不能自定義;會取當前頁面,從頂部開始,高度為 80% 螢幕寬度的影象作為分享圖片。
  2. tip: 分享的除錯支援請檢視 普通分享的除錯支援 和 帶 shareTicket 的分享
  3. tip: 只有分享到群聊中開啟才可以獲取到 shareTickets 返回值,單聊沒有 shareTickets
  4. tip: shareTicket 僅在當前小程式生命週期內有效