圈组快捷评论
更新时间: 2023/09/13 15:45:04
快捷评论是一个操作功能,并非一种消息类型。评论内容并非一条消息,而是一个 int 类型,由开发者指定评论内容与界面展示之间的联系。NIM SDK 的NIMQChatMessageExtendManager
协议提供了圈组快捷评论的相关方法。
快捷评论的 UI 示例见下图。

前提条件
开始圈组快捷评论相关集成前,请确保:
- 已开通圈组的快捷评论功能。圈组的快捷评论功能需要在开通圈组功能的基础上额外开通后才能使用。
- 已完成圈组初始化。
实现方法
添加/移除快捷评论
API 调用时序
具体流程
本节仅对上图中标为橙色的流程进行说明,其他流程请参考相关文档。例如:
-
用户A和用户B调用
addDelegate:
方法注册回调函数并登录。-
注册
onRecvMessages:
消息接收回调函数。 -
注册
onRecvSystemNotification:
系统通知接收事件回调函数。
示例代码如下:
注册消息接收回调- (void)onRecvMessages:(NSArray<NIMQChatMessage *> *)messages { //your code, deal messages }
注册系统通知接收事件回调- (void)onRecvSystemNotification:(NIMQChatReceiveSystemNotificationResult *)result { //your code }
-
-
用户B在收到消息后,调用
addQuickCommentType:toMessage:completion:
方法为接收到的消息添加快捷评论。调用成功后,系统通知接收观察者的回调触发,用户A收到系统通知(NIMQChatSystemNotificationTypeUpdateQuickComment
)。- 需要拥有发送消息的权限(
NIMQChatPermissionTypeSendMsg
)才能添加快捷评论。 - 也可在搜索/查询消息后为消息添加快捷评论,本文仅以接收消息后添加快捷评论作为示例进行说明。
云信服务端不会下发相关系统通知给发起“添加快捷评论”操作的设备,因为操作者不需要接收当前操作的通知。但如果操作者使用相同 IM 账号在其他设备登录,将收到该通知。
示例代码如下:
//服务端获得或本地缓存的消息 NIMQChatMessage *msg = ***; [[NIMSDK sharedSDK].qchatMessageExtendManager addQuickCommentType:6 toMessage:msg completion:^(NSError * error){ // your code }];
- 需要拥有发送消息的权限(
-
(可选)用户B调用
deleteQuickCommentType:toMessage:completion:
方法移除快捷评论。调用成功后,系统通知接收观察者的回调函数触发,用户A收到系统通知(NIMQChatSystemNotificationTypeUpdateQuickComment
)。云信服务端不会下发相关系统通知给发起“移除快捷评论”操作的设备,因为操作者不需要接收当前操作的通知。但如果操作者使用相同 IM 账号在其他设备登录,将收到该通知。
示例代码如下:
//服务端获得或本地缓存的消息 NIMQChatMessage *msg = ***; [[NIMSDK sharedSDK].qchatMessageExtendManager deleteQuickCommentType:6 toMessage:msg completion:^(NSError * error){ // your code }];
查询快捷评论列表
调用fetchQuickComments:completion:
可查询指定消息所包含的快捷评论列表。
返回的快捷评论详情 NIMQChatFetchQuickCommentsByMsgsResult
的结构为 NSDictionary,key 为消息的 msgIdQuickCommentDic
,value 为 NIMQChatMessageQuickCommentInfo
。
NIMQChatMessageQuickCommentInfo
的参数说明如下:
参数 | 类型 | 说明 |
---|---|---|
serverId |
unsigned long long | 服务器 ID |
channelId |
unsigned long long | 频道 ID |
msgServerId |
NSString | 消息服务端 ID |
count |
NSInteger | 总评论数 |
updateTime |
NSTimeInterval | 消息评论最后一次操作的时间 |
commentArray |
NSArray< NIMQChatMessageQuickCommentsDetail * > * |
评论详情列表 |
其中NIMQChatMessageQuickCommentsDetail
的参数说明如下:
参数 | 类型 | 说明 |
---|---|---|
replyType |
NSInteger | 评论类型 |
selfReplyed |
BOOL | 自己是否添加了该类型评论 |
count |
NSInteger | 总评论数 |
createTime |
NSTimeInterval | 消息评论的创建时间 |
replyAccIds |
NSArray< NSString * > * |
若干个添加了此类型评论的用户 ID (accid )列表,随机获取结果 |
示例代码如下:
//服务端获得或本地缓存的消息
NSArray *msgArr = @[msg1, msg2];
[[NIMSDK sharedSDK].qchatMessageExtendManager fetchQuickComments:msgArr completion:^(NSError * error, NIMQChatFetchQuickCommentsByMsgIdsResult * result){
// your code
}];