消息置顶
功能简介
说明
如需使用本功能,请开通旗舰版套餐。
ZIM SDK 支持在会话中将特定消息添加到置顶消息列表,会话成员可以随时查询置顶消息列表中的消息。此功能可用于将重要的消息固定在会话的顶部,方便会话成员快速查看。
监听消息置顶状态变更
会话成员注册 on 监听 messagePinStatusChanged 回调监听消息置顶状态变更的相关通知。当其他用户置顶消息后,可以通过该通知获取置顶消息的状态变化、置顶时间和置顶操作者等相关信息。
示例代码
// 注册事件
zim.on('messagePinStatusChanged', (zim: ZIM, data: ZIMEventOfMessagePinStatusChangedResult) => {
// 收到消息置顶状态变更通知后,可于此处获取到置顶的消息/取消置顶的消息以此刷新 UI
})置顶消息
会话成员可以调用 pinMessage 接口置顶会话内成功发送的消息。支持置顶的消息类型如下表所示:
| 消息类型 | 说明 |
|---|---|
| ZIMTextMessage | 文本消息 |
| ZIMMultipleMessage | 组合消息 |
| ZIMImageMessage | 图片消息 |
| ZIMFileMessage | 文件消息 |
| ZIMAudioMessage | 音频消息 |
| ZIMVideoMessage | 视频消息 |
| ZIMCombineMessage | 合并消息 |
| ZIMCustomMessage | 自定义消息 |
消息置顶后可通过 ZIMMessagePinnedResult 接口获取置顶操作的结果。 会话中存在置顶消息时,会话成员可以通过调用 queryPinnedMessageList 接口查询置顶消息,并通过 ZIMPinnedMessageListQueriedResult 获取置顶消息列表。
注意
- 消息置顶仅支持在单聊和群聊会话中调用。
- 每个会话仅支持支持最多十条消息。尝试置顶第十一条消息时,会自动将置顶时间最早的消息解除置顶。
- 重复置顶同一条消息会更新其置顶时间。
- ZIMMessage 消息对象中的 pinnedUserID 和 pinnedTime 仅在 ZIMPinnedMessageListQueriedResult 和 messagePinStatusChanged 中返回
- 群聊消息置顶和取消置顶操作可通过后台配置是否触发群 Tips 消息推送(默认不触发推送)。配置开启推送后,当群聊会话内有消息被置顶或取消置顶时,群成员会收到消息置顶相关的 TIPS 消息。例如:“XXX置顶了一条消息”。详情请参考 接收 TIPS 消息。
示例代码
// 置顶一条文本消息
const messageObj: ZIMMessage = {}; // 从 queryHistoryMessage 接口获取
zim.pinMessage(messageObj, true)
.then((res: ZIMMessagePinnedResult) {
// 操作成功
})
.catch((err: ZIMError) => {
// 操作失败
});
zim.queryPinnedMessageList(conversationID, conversationType)
.then((res: ZIMMessagePinnedListQueriedResult) {
// 从此处获取置顶消息列表
})
.catch((err: ZIMError) => {
// 操作失败
});