Browse SDKs · HarmonyOS
Platform
SDKsHarmonyOSEnterprise

Batch delete messages

Delete multiple messages from a conversation with optional multi-device synchronization.

Copy

All client message IDs within a single batch must belong to the same conversation.

Code example

import sdk, {
  DeleteMessagesReq,
  EventOnMessageDeletedData,
  OpenIMSDKEvent,
} from '@openimsdk/imsdk';

const request: DeleteMessagesReq = {
  conversationID: conversationID,
  clientMsgIDs: selectedMessageIDs,
  IsSync: true,
};
await sdk.deleteMessages(request);

const handleMessageDeleted = (data: EventOnMessageDeletedData): void => {
  const targetConversationID = resolveMessageConversationID(data.message);
  removeMessage(targetConversationID, data.message.clientMsgID);
};
const unsubscribeMessageDeleted = sdk.on(
  OpenIMSDKEvent.EventOnMessageDeleted,
  handleMessageDeleted,
);

export function removeMessageDeletedListener(): void {
  unsubscribeMessageDeleted();
}

Parameters

ParameterTypeRequiredDescription
conversationIDstringYesTarget conversation identifier.
clientMsgIDsstring[]YesArray of client message IDs to delete.
IsSyncbooleanYesNote PascalCase capitalization. Set true to synchronize deletion across other devices of the current account.

Return value

Returns a Promise that resolves to void upon server acceptance and local deletion.

State changes after the call

Setting IsSync: true synchronizes message deletions to other devices of the signed-in account; it does not delete copies held by other conversation participants or generate recall notices. Clients identify and remove local records using clientMsgID (qualified by conversationID as needed). Promise resolution, delete event delivery, and history query re-calibration represent separate stages. Dispose of listeners when navigating away or logging out.