群用戶通過微信小程序可以更好地協作了
今天,小程序向開發者開放了群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
tip
: 分享圖片不能自定義;會取當前頁面,從頂部開始,高度為 80% 屏幕寬度的圖像作為分享圖片。tip
: 分享的調試支持請查看 普通分享的調試支持 和 帶 shareTicket 的分享tip
: 只有分享到群聊中打開才可以獲取到shareTickets
返回值,單聊沒有shareTickets
tip
:shareTicket
僅在當前小程序生命周期內有效
群用戶通過微信小程序可以更好地協作了