iOS

圈组消息删除

更新时间: 2024/03/14 17:08:37

NIM SDK 的NIMQChatMessageManager协议提供方法支持在发送消息后删除消息。

消息发送方和拥有删除他人消息权限(NIMQChatPermissionTypeDeleteOtherMsg)的频道成员都可删除消息。

前提条件

实现流程

API 调用时序

uml diagram

具体流程

本节仅对上图中标为橙色的流程进行说明,其他流程请参考相关文档。例如:

  1. 调用 addDelegate: 方法添加委托(具体回调函数如下)并登录。

    • 发送方在登录圈组前,注册onMessageUpdate:消息更新事件回调函数。
    • 接收方在登录圈组前,注册onRecvMessages:消息接收回调函数和onMessageUpdate:消息更新事件回调函数。

    示例代码如下:

    注册消息接收回调
    - (void)onRecvMessages:(NSArray<NIMQChatMessage *> *)messages
    {
        //your code, deal messages
    }
    
    注册消息更新回调
    - (void)onMessageUpdate:(NIMQChatUpdateMessageEvent *)event
    {
        
    }
    
  2. 接收方在收到消息后,调用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
    }];
    
  3. onMessageUpdate:消息更新事件回调触发,接收方和发送方通过该回调获取消息删除结果。

此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 实现流程
  • API 调用时序
  • 具体流程