logo
当前页

消息置顶


功能简介

说明

如需使用本功能,请开通旗舰版套餐。

ZIM SDK 支持在会话中将特定消息添加到置顶消息列表,会话成员可以随时查询置顶消息列表中的消息。此功能可用于将重要的消息固定在会话的顶部,方便会话成员快速查看。

监听消息置顶状态变更

会话成员注册 setEventHandler 监听 messagePinStatusChanged 回调监听消息置顶状态变更的相关通知。当其他用户置顶消息后,可以通过该通知获取置顶消息的状态变化、置顶时间和置顶操作者等相关信息。

示例代码
// 注册事件
- (void)zim:(ZIM *)zim messagePinStatusChanged:(NSArray<ZIMMessagePinStatusChangeInfo *> *)changeInfoList {
    if (zim != self.zim) {
        return;
    }
    // 收到消息置顶状态变更通知后,可于此处获取到置顶的消息/取消置顶的消息以此刷新 UI
};

置顶消息

会话成员可以调用 pinMessage 接口置顶会话内成功发送的消息。支持置顶的消息类型如下表所示:

消息类型说明
ZIMTextMessage文本消息
ZIMMultipleMessage组合消息
ZIMImageMessage图片消息
ZIMFileMessage文件消息
ZIMAudioMessage音频消息
ZIMVideoMessage视频消息
ZIMCombineMessage合并消息
ZIMCustomMessage自定义消息

消息置顶后可通过 ZIMMessagePinnedCallback 接口获取置顶操作的结果。 会话中存在置顶消息时,会话成员可以通过调用 queryPinnedMessageListByConversationID 接口查询置顶消息,并通过 ZIMPinnedMessageListQueriedCallback 获取置顶消息列表。

注意
  • 消息置顶仅支持在单聊和群聊会话中调用。
  • 每个会话仅支持支持最多十条消息。尝试置顶第十一条消息时,会自动将置顶时间最早的消息解除置顶。
  • 重复置顶同一条消息会更新其置顶时间。
  • ZIMMessage 消息对象中的 pinnedUserID 和 pinnedTime 仅在 ZIMPinnedMessageListQueriedCallbackmessagePinStatusChanged 中返回
  • 群聊消息置顶和取消置顶操作可通过后台配置是否触发群 Tips 消息推送(默认不触发推送)。配置开启推送后,当群聊会话内有消息被置顶或取消置顶时,群成员会收到消息置顶相关的 TIPS 消息。例如:“XXX置顶了一条消息”。详情请参考 接收 TIPS 消息
示例代码
// 置顶一条文本消息
ZIMTextMessage *messageObj; // 从 queryHistoryMessage 接口获取

[[ZIM getInstance] pinMessage:messageObj 
                     isPinned:YES 
                    callback:^(ZIMError * _Nonnull errorInfo) {
    // 从这里获知置顶消息的操作是否成功
}];

[[ZIM getInstance] queryPinnedMessageListByConversationID:conversationID 
                                         conversationType:conversationType 
                                                 callback:^(NSArray<ZIMMessage *> * _Nonnull messageList, ZIMError * _Nonnull errorInfo) {
    // 从此处获取置顶消息列表
}];

上一篇

消息表态

下一篇

导出导入消息

当前页

返回到顶部