SDKsWASM商业版
批量删除消息
使用 WASM SDK 批量删除当前账号在同一会话中的消息。
参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
conversationID | string | 是 | 要删除消息所在的会话 ID。 |
clientMsgIDs | string[] | 是 | 要删除的消息 ID 列表;同一批 ID 必须属于同一会话。 |
isSync | boolean | 是 | 是否把删除动作同步到当前账号的其他客户端。 |
await openimsdk.deleteMessages({
conversationID,
clientMsgIDs: selectedMessageIDs,
isSync: true,
});isSync: false 仅删除当前设备本地与当前账号的服务端记录;true 则会请求服务端向当前账号的多端设备同步该删除动作。该操作仅影响当前账号的消息视图,不会删除其他会话成员的消息副本,也不会产生撤回系统提示。
接口调用成功表示删除请求已完成。若启用了多端同步,其他客户端随后会收到删除事件。
本页集中提供 SdkEvent.OnMsgDeleted 事件的监听示例:事件载荷 data 为 MessageItem,业务层可根据会话路由定位会话,并使用 clientMsgID 将对应消息从界面列表中移除。
import { SdkEvent } from '@openim/wasm-client-sdk';
const handleMessageDeleted = ({ data }) => {
removeMessage(resolveConversationID(data), data.clientMsgID);
};
openimsdk.on(SdkEvent.OnMsgDeleted, handleMessageDeleted);
function removeMessageDeletedListener() {
openimsdk.off(SdkEvent.OnMsgDeleted, handleMessageDeleted);
}在组件销毁、退出登录或切换账号时,请调用 removeMessageDeletedListener() 解绑监听。如需校准消息列表,可重新拉取历史记录。
这个页面有帮助吗?