删除消息
功能简介
ZIM SDK 支持单聊消息、群组消息、房间消息等的收发,以及查询历史消息、删除消息等功能。可广泛应用于娱乐社交、电商购物、在线教育、互动直播等多种场景下。
本文档介绍了如何使用 ZIM SDK 的接口,实现删除某个会话中指定的消息、删除某个会话的全部消息,以及为会话内所有人删除指定消息的功能。
ZIM SDK 目前支持删除“单聊/群组”会话消息,暂不支持删除“房间”会话消息。
实现流程
ZIM SDK 支持删除某个会话中指定的消息,或者删除某个会话的全部消息。删除消息分为“删除本地消息记录”和“删除服务端消息记录”,开发者可以通过 ZIMMessageDeleteConfig 对象,设置删除消息相关的高级属性配置。
删除操作默认只对当前用户生效,如需让会话内的所有成员都不再看到指定的消息,请参考 为所有人删除消息。
以客户端 A 删除与客户端 B 的某些消息、或全部消息为例:
删除会话的指定消息
如果客户端 A 想要删除与客户端 B 的指定消息记录:
- 客户端 A、B 登录 ZIM SDK,并相互发送、接收单聊消息。
- 客户端 A 需要删除与 B 的会话记录时:
- 客户端 A 首先登录 ZIM SDK。
- 客户端 A 调用 deleteMessages 接口,传入参数 messageList、config,删除指定的消息。
- 删除操作的结果,将通过 ZIMMessageDeletedCallback 回调接口通知给客户端 A。
示例代码
// 删除会话的指定消息
String conversationID = "xxxx";
ArrayList<ZIMMessage> deleteMessageList = new ArrayList();
ZIMMessageDeleteConfig config = new ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
zim.deleteMessages(deleteMessageList, conversationID, ZIMConversationType.PEER, config, new ZIMMessageDeletedCallback() {
@Override
public void onMessageDeleted(String conversationID, ZIMConversationType conversationType, ZIMError errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}
});
// 删除会话的指定消息
String conversationID = "xxxx";
ArrayList<ZIMMessage> deleteMessageList = new ArrayList();
ZIMMessageDeleteConfig config = new ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
zim.deleteMessages(deleteMessageList, conversationID, ZIMConversationType.PEER, config, new ZIMMessageDeletedCallback() {
@Override
public void onMessageDeleted(String conversationID, ZIMConversationType conversationType, ZIMError errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}
});
示例代码
// 删除会话的指定消息
NSMutableArray *deleteMessageList = [[NSMutableArray alloc] init];
ZIMMessageDeleteConfig *config = [[ZIMMessageDeleteConfig alloc] init];
//用于确定是否删除服务器消息
config.isAlsoDeleteServerMessage = true;
[self.zim deleteMessages:messageList conversationID:conversationID conversationType:conversationType config:config callback:^(NSString * _Nonnull conversationID, ZIMConversationType conversationType, ZIMError * _Nonnull errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}];
// 删除会话的指定消息
NSMutableArray *deleteMessageList = [[NSMutableArray alloc] init];
ZIMMessageDeleteConfig *config = [[ZIMMessageDeleteConfig alloc] init];
//用于确定是否删除服务器消息
config.isAlsoDeleteServerMessage = true;
[self.zim deleteMessages:messageList conversationID:conversationID conversationType:conversationType config:config callback:^(NSString * _Nonnull conversationID, ZIMConversationType conversationType, ZIMError * _Nonnull errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}];
示例代码
// 删除会话的指定消息
std::vector<std::shared_ptr<ZIMMessage>> messageList;
zim::ZIMMessageDeleteConfig config;
//用于确定是否删除服务器消息
config.isAlsoDeleteServerMessage = true;
zim_->deleteMessages(messageList, "conversationID", zim::ZIM_CONVERSATION_TYPE_PEER, config, callback);
// 删除会话的指定消息
std::vector<std::shared_ptr<ZIMMessage>> messageList;
zim::ZIMMessageDeleteConfig config;
//用于确定是否删除服务器消息
config.isAlsoDeleteServerMessage = true;
zim_->deleteMessages(messageList, "conversationID", zim::ZIM_CONVERSATION_TYPE_PEER, config, callback);
示例代码
// 删除会话的指定消息
String conversationID = 'xxxx';
List<ZIMMessage> messageList = [];
ZIMMessageDeleteConfig config = ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
await ZIM
.getInstance()
!.deleteMessages(
messageList, conversationID, ZIMConversationType.peer, config)
.then((value) => {})
.catchError((onError) {});
// 删除会话的指定消息
String conversationID = 'xxxx';
List<ZIMMessage> messageList = [];
ZIMMessageDeleteConfig config = ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
await ZIM
.getInstance()
!.deleteMessages(
messageList, conversationID, ZIMConversationType.peer, config)
.then((value) => {})
.catchError((onError) {});
示例代码
// 删除会话的指定消息
const deleteMessageList: ZIMMessage[] = [];
const conversationID = '';
const conversationType = 0;
const config: ZIMMessageDeleteConfig = { isAlsoDeleteServerMessage: false };
zim.deleteMessages(deleteMessageList, conversationID, conversationType, config)
.then((res: ZIMMessageDeletedResult) => {
// 操作成功
})
.catch((err: ZIMError) => {
// 操作失败
});
// 删除会话的指定消息
const deleteMessageList: ZIMMessage[] = [];
const conversationID = '';
const conversationType = 0;
const config: ZIMMessageDeleteConfig = { isAlsoDeleteServerMessage: false };
zim.deleteMessages(deleteMessageList, conversationID, conversationType, config)
.then((res: ZIMMessageDeletedResult) => {
// 操作成功
})
.catch((err: ZIMError) => {
// 操作失败
});
为所有人删除消息
本功能自 ZIM SDK 3.2.0 版本开始支持。
默认情况下,删除操作只对当前用户生效,会话内的其他成员仍可看到被删除的消息。如果需要让会话内的所有成员都不再看到指定的消息,请在调用 deleteMessages 时,将 ZIMMessageDeleteConfig 的 isAlsoDeleteForEveryone 设置为 true 。
删除成功后,操作者与会话内其他成员会分别收到删除结果通知:
以下示例代码演示了如何为所有人删除消息,以及操作者和其他成员如何接收删除结果通知:
示例代码
// 为会话内的所有人删除指定消息
String conversationID = "xxxx";
ArrayList<ZIMMessage> deleteMessageList = new ArrayList<>();
ZIMMessageDeleteConfig config = new ZIMMessageDeleteConfig();
// 为所有人删除消息时,必须同时删除服务端消息
config.isAlsoDeleteServerMessage = true;
config.isAlsoDeleteForEveryone = true;
zim.deleteMessages(deleteMessageList, conversationID, ZIMConversationType.GROUP, config, new ZIMMessageDeletedCallback() {
@Override
public void onMessageDeleted(String conversationID, ZIMConversationType conversationType, ZIMError errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}
});
// 会话内的其他成员通过该回调感知消息被删除
zim.setEventHandler(new ZIMEventHandler() {
@Override
public void onMessageDeleted(ZIM zim, ZIMMessageDeletedInfo deletedInfo) {
if (deletedInfo.messageDeleteType == ZIMMessageDeleteType.MESSAGE_LIST_DELETED) {
// deletedInfo.messageList 为被删除的消息列表,可于此处刷新 UI
}
}
});
// 为会话内的所有人删除指定消息
String conversationID = "xxxx";
ArrayList<ZIMMessage> deleteMessageList = new ArrayList<>();
ZIMMessageDeleteConfig config = new ZIMMessageDeleteConfig();
// 为所有人删除消息时,必须同时删除服务端消息
config.isAlsoDeleteServerMessage = true;
config.isAlsoDeleteForEveryone = true;
zim.deleteMessages(deleteMessageList, conversationID, ZIMConversationType.GROUP, config, new ZIMMessageDeletedCallback() {
@Override
public void onMessageDeleted(String conversationID, ZIMConversationType conversationType, ZIMError errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}
});
// 会话内的其他成员通过该回调感知消息被删除
zim.setEventHandler(new ZIMEventHandler() {
@Override
public void onMessageDeleted(ZIM zim, ZIMMessageDeletedInfo deletedInfo) {
if (deletedInfo.messageDeleteType == ZIMMessageDeleteType.MESSAGE_LIST_DELETED) {
// deletedInfo.messageList 为被删除的消息列表,可于此处刷新 UI
}
}
});
示例代码
// 为会话内的所有人删除指定消息
NSMutableArray *deleteMessageList = [[NSMutableArray alloc] init];
ZIMMessageDeleteConfig *config = [[ZIMMessageDeleteConfig alloc] init];
// 为所有人删除消息时,必须同时删除服务端消息
config.isAlsoDeleteServerMessage = YES;
config.isAlsoDeleteForEveryone = YES;
[self.zim deleteMessages:deleteMessageList conversationID:conversationID conversationType:ZIMConversationTypeGroup config:config callback:^(NSString * _Nonnull conversationID, ZIMConversationType conversationType, ZIMError * _Nonnull errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}];
// 会话内的其他成员通过该回调感知消息被删除
- (void)zim:(ZIM *)zim messageDeleted:(ZIMMessageDeletedInfo *)deletedInfo {
if (deletedInfo.messageDeleteType == ZIMMessageDeleteTypeMessageListDeleted) {
// deletedInfo.messageList 为被删除的消息列表,可于此处刷新 UI
}
}
// 为会话内的所有人删除指定消息
NSMutableArray *deleteMessageList = [[NSMutableArray alloc] init];
ZIMMessageDeleteConfig *config = [[ZIMMessageDeleteConfig alloc] init];
// 为所有人删除消息时,必须同时删除服务端消息
config.isAlsoDeleteServerMessage = YES;
config.isAlsoDeleteForEveryone = YES;
[self.zim deleteMessages:deleteMessageList conversationID:conversationID conversationType:ZIMConversationTypeGroup config:config callback:^(NSString * _Nonnull conversationID, ZIMConversationType conversationType, ZIMError * _Nonnull errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}];
// 会话内的其他成员通过该回调感知消息被删除
- (void)zim:(ZIM *)zim messageDeleted:(ZIMMessageDeletedInfo *)deletedInfo {
if (deletedInfo.messageDeleteType == ZIMMessageDeleteTypeMessageListDeleted) {
// deletedInfo.messageList 为被删除的消息列表,可于此处刷新 UI
}
}
示例代码
// 为会话内的所有人删除指定消息
std::vector<std::shared_ptr<zim::ZIMMessage>> messageList;
zim::ZIMMessageDeleteConfig config;
// 为所有人删除消息时,必须同时删除服务端消息
config.isAlsoDeleteServerMessage = true;
config.isAlsoDeleteForEveryone = true;
zim_->deleteMessages(messageList, "conversationID", zim::ZIM_CONVERSATION_TYPE_GROUP, config, callback);
// 会话内的其他成员通过该回调感知消息被删除
void onMessageDeleted(zim::ZIM *zim, const zim::ZIMMessageDeletedInfo &deletedInfo) override {
if (deletedInfo.messageDeleteType == zim::ZIM_MESSAGE_DELETE_TYPE_MESSAGE_LIST_DELETED) {
// deletedInfo.messageList 为被删除的消息列表,可于此处刷新 UI
}
}
// 为会话内的所有人删除指定消息
std::vector<std::shared_ptr<zim::ZIMMessage>> messageList;
zim::ZIMMessageDeleteConfig config;
// 为所有人删除消息时,必须同时删除服务端消息
config.isAlsoDeleteServerMessage = true;
config.isAlsoDeleteForEveryone = true;
zim_->deleteMessages(messageList, "conversationID", zim::ZIM_CONVERSATION_TYPE_GROUP, config, callback);
// 会话内的其他成员通过该回调感知消息被删除
void onMessageDeleted(zim::ZIM *zim, const zim::ZIMMessageDeletedInfo &deletedInfo) override {
if (deletedInfo.messageDeleteType == zim::ZIM_MESSAGE_DELETE_TYPE_MESSAGE_LIST_DELETED) {
// deletedInfo.messageList 为被删除的消息列表,可于此处刷新 UI
}
}
示例代码
// 为会话内的所有人删除指定消息
String conversationID = 'xxxx';
List<ZIMMessage> messageList = [];
ZIMMessageDeleteConfig config = ZIMMessageDeleteConfig();
// 为所有人删除消息时,必须同时删除服务端消息
config.isAlsoDeleteServerMessage = true;
config.isAlsoDeleteForEveryone = true;
await ZIM
.getInstance()
!.deleteMessages(
messageList, conversationID, ZIMConversationType.group, config)
.then((value) => {})
.catchError((onError) {});
// 会话内的其他成员通过该回调感知消息被删除
ZIMEventHandler.onMessageDeleted = (zim, deletedInfo) {
if (deletedInfo.messageDeleteType == ZIMMessageDeleteType.messageListDeleted) {
// deletedInfo.messageList 为被删除的消息列表,可于此处刷新 UI
}
};
// 为会话内的所有人删除指定消息
String conversationID = 'xxxx';
List<ZIMMessage> messageList = [];
ZIMMessageDeleteConfig config = ZIMMessageDeleteConfig();
// 为所有人删除消息时,必须同时删除服务端消息
config.isAlsoDeleteServerMessage = true;
config.isAlsoDeleteForEveryone = true;
await ZIM
.getInstance()
!.deleteMessages(
messageList, conversationID, ZIMConversationType.group, config)
.then((value) => {})
.catchError((onError) {});
// 会话内的其他成员通过该回调感知消息被删除
ZIMEventHandler.onMessageDeleted = (zim, deletedInfo) {
if (deletedInfo.messageDeleteType == ZIMMessageDeleteType.messageListDeleted) {
// deletedInfo.messageList 为被删除的消息列表,可于此处刷新 UI
}
};
示例代码
// 为会话内的所有人删除指定消息
const conversationID = '';
const conversationType = 2; // 群聊会话
const deleteMessageList: ZIMMessage[] = [];
const config: ZIMMessageDeleteConfig = {
// 为所有人删除消息时,必须同时删除服务端消息
isAlsoDeleteServerMessage: true,
isAlsoDeleteForEveryone: true,
};
zim.deleteMessages(deleteMessageList, conversationID, conversationType, config)
.then((res: ZIMMessageDeletedResult) => {
// 操作成功
})
.catch((err: ZIMError) => {
// 操作失败
});
// 会话内的其他成员通过该回调感知消息被删除
zim.on('messageDeleted', (zim: ZIM, data: ZIMMessageDeletedEventResult) => {
if (data.messageDeleteType == 0) {
// data.messageList 为被删除的消息列表,可于此处刷新 UI
}
});
// 为会话内的所有人删除指定消息
const conversationID = '';
const conversationType = 2; // 群聊会话
const deleteMessageList: ZIMMessage[] = [];
const config: ZIMMessageDeleteConfig = {
// 为所有人删除消息时,必须同时删除服务端消息
isAlsoDeleteServerMessage: true,
isAlsoDeleteForEveryone: true,
};
zim.deleteMessages(deleteMessageList, conversationID, conversationType, config)
.then((res: ZIMMessageDeletedResult) => {
// 操作成功
})
.catch((err: ZIMError) => {
// 操作失败
});
// 会话内的其他成员通过该回调感知消息被删除
zim.on('messageDeleted', (zim: ZIM, data: ZIMMessageDeletedEventResult) => {
if (data.messageDeleteType == 0) {
// data.messageList 为被删除的消息列表,可于此处刷新 UI
}
});
有效期
只有在有效期内的消息才能为所有人删除,有效期从消息的发送时间开始计算。默认有效期为 24 小时,最长支持配置至 7 天,如需修改配置,请联系 ZEGO 技术支持。
建议业务层根据消息的 timestamp 与当前时间的差值,决定是否向用户展示“为所有人删除”的入口。若因设备本地时间不准确导致该操作被误调用,接口会返回错误码进行兜底。
操作权限
会话成员可以为所有人删除的消息范围如下:
| 会话类型 | 可以为所有人删除的消息 |
|---|
| 单聊 | 只能删除自己发送的消息,不支持删除对方发送的消息。 |
| 群聊 | 普通成员只能删除自己发送的消息;管理员可以删除自己和普通成员发送的消息;群主可以删除自己、管理员和普通成员发送的消息。 |
在群聊场景下,建议业务层先通过 queryGroupMemberInfo 查询操作者与消息发送者在群组中的身份,再决定是否向用户展示“为所有人删除”的入口。
对于群定向消息,只有该消息的目标成员会收到删除通知,非目标成员不受影响。
错误码
调用失败时,常见的错误码如下:
| 错误码 | 说明 |
|---|
| 6000001 | 参数错误。未同时将 isAlsoDeleteServerMessage 设置为 true ,或单次删除的消息超过 100 条。 |
| 6000288 | 待删除的消息已超出可为所有人删除的有效期。 |
| 6000285 | 单聊场景下无操作权限,即尝试删除对方发送的消息。 |
| 6000541 | 群聊场景下无操作权限,即尝试删除权限高于或等于自己的成员所发送的消息。 |
删除指定会话的全部消息
如果客户端 A 想要删除与客户端 B 的指定会话的全部消息记录:
- 客户端 A、B 登录 ZIM SDK,并相互发送、接收单聊消息。
- 客户端 A 需要删除与 B 的会话记录时:
- 客户端 A 首先登录 ZIM SDK。
- 客户端 A 调用 deleteAllMessage 接口,传入参数 conversationID、conversationType、config,配置删除指定会话的全部消息。
- 删除操作的结果,将通过 ZIMMessageDeletedCallback 回调接口通知给客户端 A。
示例代码
// 删除指定会话的全部消息
String conversationID = "xxxx";
ZIMMessageDeleteConfig config = new ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
zim.deleteAllMessage(conversationID, ZIMConversationType.PEER, config, new ZIMMessageDeletedCallback() {
@Override
public void onMessageDeleted(String conversationID, ZIMConversationType conversationType, ZIMError errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}
});
// 删除指定会话的全部消息
String conversationID = "xxxx";
ZIMMessageDeleteConfig config = new ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
zim.deleteAllMessage(conversationID, ZIMConversationType.PEER, config, new ZIMMessageDeletedCallback() {
@Override
public void onMessageDeleted(String conversationID, ZIMConversationType conversationType, ZIMError errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}
});
示例代码
// 删除指定会话的全部消息
NSMutableArray *deleteMessageList = [[NSMutableArray alloc] init];
ZIMMessageDeleteConfig *config = [[ZIMMessageDeleteConfig alloc] init];
//用于确定是否删除服务器消息
config.isAlsoDeleteServerMessage = true;
[self.zim deleteAllMessageByConversationID:conversationID conversationType:conversationType config:config callback:^(NSString * _Nonnull conversationID, ZIMConversationType conversationType, ZIMError * _Nonnull errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}];
// 删除指定会话的全部消息
NSMutableArray *deleteMessageList = [[NSMutableArray alloc] init];
ZIMMessageDeleteConfig *config = [[ZIMMessageDeleteConfig alloc] init];
//用于确定是否删除服务器消息
config.isAlsoDeleteServerMessage = true;
[self.zim deleteAllMessageByConversationID:conversationID conversationType:conversationType config:config callback:^(NSString * _Nonnull conversationID, ZIMConversationType conversationType, ZIMError * _Nonnull errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}];
示例代码
// 用于确定是否删除服务器消息
ZIMMessageDeleteConfig config;
config.isAlsoDeleteServerMessage = true;
zim_->deleteAllMessage("conversationID", zim::ZIM_CONVERSATION_TYPE_PEER, config, callback);
// 用于确定是否删除服务器消息
ZIMMessageDeleteConfig config;
config.isAlsoDeleteServerMessage = true;
zim_->deleteAllMessage("conversationID", zim::ZIM_CONVERSATION_TYPE_PEER, config, callback);
示例代码
// 删除指定会话的全部消息
String conversationID = "xxxx";
ZIMMessageDeleteConfig config = ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
await ZIM
.getInstance()
!.deleteAllMessage(conversationID, ZIMConversationType.peer, config)
.then((value) => {})
.catchError((onError) {});
// 删除指定会话的全部消息
String conversationID = "xxxx";
ZIMMessageDeleteConfig config = ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
await ZIM
.getInstance()
!.deleteAllMessage(conversationID, ZIMConversationType.peer, config)
.then((value) => {})
.catchError((onError) {});
示例代码
// 删除指定会话的全部消息
const conversationID = '';
const conversationType = 0;
const config: ZIMMessageDeleteConfig = { isAlsoDeleteServerMessage: true };
zim.deleteAllMessage(conversationID, conversationType, config)
.then((res: ZIMMessageDeletedResult) => {
// 操作成功
})
.catch((err: ZIMError) => {
// 操作失败
});
// 删除指定会话的全部消息
const conversationID = '';
const conversationType = 0;
const config: ZIMMessageDeleteConfig = { isAlsoDeleteServerMessage: true };
zim.deleteAllMessage(conversationID, conversationType, config)
.then((res: ZIMMessageDeletedResult) => {
// 操作成功
})
.catch((err: ZIMError) => {
// 操作失败
});
删除所有消息
登录 ZIM SDK 后,调用 deleteAllConversationMessages 接口,传入参数 ZIMMessageDeleteConfig ,配置是否删除存放在服务端的消息,即可删除所有单聊和群聊会话的全部消息。
清空所有会话的全部消息后:
- 如果您希望保留原有会话列表,仅更新会话列中展示的
lastMessage 为空,请重新 拉取会话列表。
- 如果您希望清空原有会话列表,请 删除全部会话。
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
ZIMMessageDeleteConfig config = new ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = true;
zim.deleteAllConversationMessages(config, new ZIMConversationMessagesAllDeletedCallback() {
@Override
public void onConversationMessagesAllDeleted(ZIMError errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}
});
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
ZIMMessageDeleteConfig config = new ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = true;
zim.deleteAllConversationMessages(config, new ZIMConversationMessagesAllDeletedCallback() {
@Override
public void onConversationMessagesAllDeleted(ZIMError errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}
});
objective-c
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
ZIMMessageDeleteConfig *config = [[ZIMMessageDeleteConfig alloc] init];
// 是否删除服务器消息
config.isAlsoDeleteServerMessage = true;
[self.zim deleteAllConversationMessagesWithConfig:config callback:^(ZIMError * _Nonnull errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}];
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
ZIMMessageDeleteConfig *config = [[ZIMMessageDeleteConfig alloc] init];
// 是否删除服务器消息
config.isAlsoDeleteServerMessage = true;
[self.zim deleteAllConversationMessagesWithConfig:config callback:^(ZIMError * _Nonnull errorInfo) {
// 开发者可以通过该回调监听消息是否删除成功。
}];
cpp
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
zim::ZIMMessageDeleteConfig config;
config.isAlsoDeleteServerMessage = true;
zim::ZIM::getInstance()->deleteAllConversationMessages(config, [=](const zim::ZIMError& errorInfo) {
// 删除消息的结果
if (errorInfo.code == zim::ZIM_ERROR_CODE_SUCCESS) {
// 删除后的业务逻辑
}
else {
// 请查看错误码文档寻找解决建议
}
});
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
zim::ZIMMessageDeleteConfig config;
config.isAlsoDeleteServerMessage = true;
zim::ZIM::getInstance()->deleteAllConversationMessages(config, [=](const zim::ZIMError& errorInfo) {
// 删除消息的结果
if (errorInfo.code == zim::ZIM_ERROR_CODE_SUCCESS) {
// 删除后的业务逻辑
}
else {
// 请查看错误码文档寻找解决建议
}
});
dart
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
ZIMMessageDeleteConfig config = ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
await ZIM
.getInstance()
!.deleteAllConversationMessages(config)
.then((value) => {})
.catchError((onError) {});
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
ZIMMessageDeleteConfig config = ZIMMessageDeleteConfig();
config.isAlsoDeleteServerMessage = false;
await ZIM
.getInstance()
!.deleteAllConversationMessages(config)
.then((value) => {})
.catchError((onError) {});
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
const config: ZIMMessageDeleteConfig = {
isAlsoDeleteServerMessage: true
}
zim.deleteAllConversationMessages(config)
.then(() => {
// 操作成功
})
.catch((err: ZIMError) => {
// 操作失败
});
// 删除所有会话的全部消息
// 设置是否删除存放于服务端的消息
const config: ZIMMessageDeleteConfig = {
isAlsoDeleteServerMessage: true
}
zim.deleteAllConversationMessages(config)
.then(() => {
// 操作成功
})
.catch((err: ZIMError) => {
// 操作失败
});