SDKsHarmonyOSEnterprise
Batch delete messages
Delete multiple messages from a conversation with optional multi-device synchronization.
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
| Parameter | Type | Required | Description |
|---|---|---|---|
conversationID | string | Yes | Target conversation identifier. |
clientMsgIDs | string[] | Yes | Array of client message IDs to delete. |
IsSync | boolean | Yes | Note 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.
Was this page helpful?