1. 程式人生 > >群用戶通過微信小程序可以更好地協作了

群用戶通過微信小程序可以更好地協作了

bug space 隱藏 針對 簡單 完整 script 寬度 table

  今天,小程序向開發者開放了群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 僅在當前小程序生命周期內有效

群用戶通過微信小程序可以更好地協作了