删除消息
超级群会话消息存储在服务端(免费存储 7 天)和用户设备本地数据库。App 用户通过客户端 SDK 删除自己的历史消息,支持仅从本地数据库删除消息、或仅从融云服务端删除消息。
提示
- 客户端的删除消息的操作均指从当前登录用户的历史消息记录中删除消息,不影响会话中其他用户的历史消息记录。
- 如果 App 的管理员或者某普通用户希望在该 App 中彻底删除一条消息,例如在所有超级群成员的聊天记录中删除一条消息,应使用客户端或服务端的撤回消息功能。消息成功撤回后,原始消息内容会在所有用户的本地与服务端历史消息记录中删除。
功能 | 本地/服务端 | API |
---|---|---|
从本地删除全部频道的消息(时间戳) | 仅从本地删除 | deleteUltraGroupMessagesForAllChannel |
从本地删除指定频道的消息(时间戳) | 仅从本地删除 | deleteUltraGroupMessages |
从服务端删除指定频道的消息(时间戳) | 仅从服务端删除 | deleteRemoteUltraGroupMessages |
从本地和远端删除消息(消息对象) | 同时从本地和服务端删除 | deleteRemoteMessage |
从本地删除全部频道的消息(时间戳)
删除本地数据库删除所有频道指定时间戳之前的历史消息。需提供 Unix 时间戳,精确到毫秒。单次操作仅针对单个超级群,不支持一次删除多个超级群中的消息。
如果 App 用户希望从超级群在当前设备上存储的所有历史记录中删除一段时间的记录,可以使用 deleteUltraGroupMessagesForAllChannel
删除所有频道中早于某个时间点(timestamp
)的消息。时间戳为 0
表示使用当前时间戳,会从本地清除全部消息。服务端保存的该用户的历史消息记录不受影响。如果该用户从服务端获取历史消息,可能会获取到在本地已删除的消息。
String targetId = "会话 Id";
String timestamp = 0;
ChannelClient.getInstance().deleteUltraGroupMessagesForAllChannel(targetId, timestamp,
new IRongCoreCallback.ResultCallback<Boolean>() {
/**
* 成功回调
*/
@Override
public void onSuccess(Boolean bool) {
}
/**
* 失败回调
* @param errorCode 错误码
*/
@Override
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
}
});
从本地删除指定频道的消息(时间戳)
删除本地数据库删除指定单个频道指定时间戳之前的历史消息。需提供 Unix 时间戳,精确到毫秒。单次操作仅针对单个超级群,不支持一次删除多个超级群中的消息。
如果 App 用户希望从超级群在当前设备上存储的频道消息历史记录中删除一段时间的记录,可以使用 deleteUltraGroupMessages
删除早于某个时间点(timestamp
)的消息。时间戳为 0
表示使用当前时间戳,会从本地清除指定频道中的全部消息。服务端保存的该用户的历史消息记录不受影响。如果该用户从服务端获取历史消息,可能会获取到在本地已删除的消息。
String targetId = "超级群 ID";
String channelId = "频道 ID";
String recordTime = 0;
ChannelClient.getInstance().deleteUltraGroupMessages(targetId, channelId, timestamp,
new IRongCoreCallback.ResultCallback<Boolean>() {
/**
* 获取成功回调
*/
@Override
public void onSuccess(Boolean bool) {
}
/**
* 失败回调
* @param errorCode 错误码
*/
@Override
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
}
});