IM 即时通讯
圈组消息删除
更新时间: 2023/09/13 15:20:21
NIM SDK 的NIMQChatMessageManager
协议提供方法支持在发送消息后删除消息。
消息发送方和拥有删除他人消息权限(NIMQChatPermissionTypeDeleteOtherMsg
)的频道成员都可删除消息。
前提条件
- 已开通圈组功能。
- 已完成圈组初始化。
实现流程
API 调用时序
具体流程
本节仅对上图中标为橙色的流程进行说明,其他流程请参考相关文档。例如:
-
调用
addDelegate:
方法添加委托(具体回调函数如下)并登录。- 发送方在登录圈组前,注册
onMessageUpdate:
消息更新事件回调函数。 - 接收方在登录圈组前,注册
onRecvMessages:
消息接收回调函数和onMessageUpdate:
消息更新事件回调函数。
示例代码如下:
注册消息接收回调- (void)onRecvMessages:(NSArray<NIMQChatMessage *> *)messages { //your code, deal messages }
注册消息更新回调- (void)onMessageUpdate:(NIMQChatUpdateMessageEvent *)event { }
- 发送方在登录圈组前,注册
-
接收方在收到消息后,调用
deleteMessage:completion:
方法删除消息。删除未读消息将影响未读数。
示例代码如下:
id<NIMQChatMessageManager> qchatMessageManager = [[NIMSDK sharedSDK] qchatMessageManager]; NIMQChatDeleteMessageParam *param = [[NIMQChatDeleteMessageParam alloc] init]; param.message = message; NIMQChatUpdateParam *updateParam = [[NIMQChatUpdateParam alloc] init]; updateParam.postscript = @"删除附言"; param.updateParam = updateParam; [qchatMessageManager deleteMessage:param completion:^(NSError *__nullable error, NIMQChatUpdateMessageResult *__nullable result) { // your code }];
-
onMessageUpdate:
消息更新事件回调触发,接收方和发送方通过该回调获取消息删除结果。
此文档是否对你有帮助?
有帮助
去反馈