SDKsWASM商业版
批量删除消息
使用 WASM SDK 批量删除当前账号在同一会话中的消息。
参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
conversationID | string | 是 | 要删除消息所在的会话 ID。 |
clientMsgIDs | string[] | 是 | 要删除的消息 ID 列表;同一批 ID 必须属于同一会话。 |
isSync | boolean | 是 | 是否把删除动作同步到当前账号的其他客户端。 |
await openimsdk.deleteMessages({
conversationID,
clientMsgIDs: selectedMessageIDs,
isSync: true,
});isSync: false 删除当前设备及当前账号服务端记录;true 还请求把删除动作同步到其他客户端。它不会删除其他会话成员的副本,也不会产生撤回提示。
Promise 成功表示删除请求已经完成;同步开启时,这不代表其他客户端已经收到事件或完成界面更新。
CbEvents.OnMsgDeleted 是本页归属事件。data 是 MessageItem,结合消息路由确定会话后按 clientMsgID 幂等移除。
import { CbEvents } from '@openim/wasm-client-sdk';
const handleMessageDeleted = ({ data }) => {
removeMessage(resolveConversationID(data), data.clientMsgID);
};
openimsdk.on(CbEvents.OnMsgDeleted, handleMessageDeleted);
function removeMessageDeletedListener() {
openimsdk.off(CbEvents.OnMsgDeleted, handleMessageDeleted);
}组件卸载、退出登录或切换账号时调用 removeMessageDeletedListener()。需要校准当前消息快照时,重新查询对应会话的历史消息。
这个页面有帮助吗?