On this page

Delete conversations

2026-04-02

Introduction

ZIM supports users to delete a specific conversation or all conversations in the conversation list.

Delete a conversation

To delete a specified conversation after login, call the deleteConversation with the conversationID parameter.

Then, developers can obtain the result of the deletion through ZIMConversationDeletedCallback.

Note
  • When deleting a specified conversation:
    • All messages in the conversation are not automatically deleted. If you need to delete both the conversation and all messages in the conversation, call the deleteAllMessageByConversationID method. For details, see the chapter Delete all messages of the specified conversation of Delete messages.
    • If the conversation has unread messages, the total number of unread messages will be reduced and shown in the conversationTotalUnreadMessageCountUpdated callback. For details, see the chapter Get the number of unread messages above.
    • In 2.28.0 and later versions, the client will receive conversationChanged callback notification, the event type is deleted.
  • When a user logs in from multiple ends, only the end that initiates the deletion will receive ZIMConversationDeletedCallback. If you want to know how other online clients of this user can obtain the deletion event, please refer to Multi-device login - Delete a single server conversation.
// Delete a specified conversation.
ZIMConversationDeleteConfig *config = [[ZIMConversationDeleteConfig alloc] init];
config.isAlsoDeleteServerConversation = YES;
[self.zim deleteConversation:@"CONV_ID" conversationType: ZIMConversationTypePeer config:config callback:^(ZIMError * _Nonnull errorInfo) {
    // The results of delete a specified result. 
    if(errorInfo.code == ZIMErrorCodeSuccess) {
      // ......
    } else {
      // ......
    }
}];

Delete all conversations

After the login, a user can delete all conversations in the conversation list by calling the deleteAllConversationsWithConfig interface.

Afterward, developers can obtain the result of the deletion through ZIMConversationsAllDeletedCallback.

Note

When a user logs in from multiple devices, only the client that initiates the deletion will receive ZIMConversationsAllDeletedCallback. Other online clients that need to synchronize the deletion event should refer to Multi-device login - Delete all server conversations.

// Delete all conversations

ZIMConversationDeleteConfig *config = [[ZIMConversationDeleteConfig alloc] init];
config.isAlsoDeleteServerConversation = YES;

[self.zim deleteAllConversationsWithConfig:config callback:^(ZIMError * _Nonnull errorInfo) {
    // Get the result of deleting conversations
    if(errorInfo.code == ZIMErrorCodeSuccess) {
      // ......
    } else {
      // ......
    }
}];

Previous

Mute a conversation

Next

Pin a conversation

On this page

Back to top