浏览 SDKs · uni-app / uni-app x
SDKsuni-app

删除已保存消息

商业版批量删除消息,并处理 onMsgDeleted。

复制

deleteMessages()商业版 商业版 批量删除当前账号在同一会话中明确指定的消息。

参数说明

参数类型是否必填说明
conversationIDstring要删除消息所在的会话 ID。
clientMsgIDsstring[]要删除的消息 ID;同一批 ID 必须属于同一会话。
IsSyncboolean是否把删除动作同步到当前账号的其他客户端;字段名首字母为大写。
import {
  deleteMessages,
  off,
  onMsgDeleted,
} from '@/uni_modules/unix-openim-sdk'

const deletedSubscription = onMsgDeleted((message) => {
  if (message == null) return
  removeMessage(resolveConversationID(message), message.clientMsgID)
})

await deleteMessages({
  conversationID,
  clientMsgIDs: selectedMessageIDs,
  IsSync: true,
})

function removeMessageDeletedListener() {
  off(deletedSubscription)
}

IsSync: false 删除当前设备及当前账号服务端记录;true 还请求把删除动作同步到其他客户端。它不会删除其他会话成员的副本,也不会产生撤回提示。

Promise 成功表示删除请求已经完成;同步开启时,这不代表其他客户端已经收到事件或完成界面更新。公共事件 onMsgDeleted 是本页归属事件,参数是 OpenIMMessageItem | null;结合消息路由确定会话后按 clientMsgID 幂等移除。组件卸载、退出登录或切换账号时调用 removeMessageDeletedListener();需要校准时重新查询对应会话的历史消息。