跳到主要内容

版本:5.X

撤回消息

撤回已发送成功的消息。

默认情况下,融云对撤回消息的操作者不作限制。如需限制,可考虑以下方案:

  • App 客户端自行限制撤回消息的操作者。例如,不允许 App 业务中的普通用户撤回他人发送的消息,允许 App 业务中的管理员角色撤回他人发送的消息。
  • 如需避免用户撤回非本人发送的消息,可以提交工单申请打开IMLib SDK 只允许撤回自己发送的消息。从融云服务端进行限制,禁止用户撤回非本人发送的消息。

撤回指定消息

recallMessage 撤回指定消息。

调用示例

RongIMLib.recallMessage(conversation, options);

参数说明

参数类型说明
conversationIConversation会话
options消息相关要撤回消息的相关信息。请参见下方对 options 的参数说明。
  • options 的参数说明

    参数类型说明
    messageUIdstring消息的 UId
    sentTimenumber消息的发送时间
    userIUserProfile撤回消息携带用户信息(可选项)
    disableNotificationboolean是否发送静默消息(可选项)
    pushConfigIPushConfig移动端推送配置(可选项,与 Android、iOS 端的 MessagePushConfig 作用相似)
    extrastring撤回消息携带扩展信息。Web SDK 从 5.3.0 版本开始支持该参数。
    isDeleteboolean指定移动端接收方是否需要从本地删除原始消息记录。为 false 时,移动端不会删除原始消息记录,会将消息内容替换为撤回提示(小灰条通知)。为 true 时,移动端会删除原始消息记录,不显示撤回提示(小灰条通知)。Web SDK 从 5.3.1 版本开始支持该参数。

代码示例

const conversation = {
conversationType: RongIMLib.ConversationType.ULTRA_GROUP,
targetId: '<目标用户ID>',
channelId: '<频道ID>',
}
RongIMLib.recallMessage(conversation, {
messageUId: 'BS4O-QEBR-VJM6-9GPP',
sentTime: 1632728573423,
})
.then((res) => {
if (res.code === 0) {
console.log(res.code, res.data)
} else {
console.log(res.code, res.msg)
}
})
.catch((error) => {
console.log(error)
})

监听消息撤回通知

可通过监听 Events.ULTRA_GROUP_MESSAGE_RECALLED 事件来捕获撤回信息的通知。

RongIMLib.addEventListener(RongIMLib.Events.ULTRA_GROUP_MESSAGE_RECALLED, (messageList) => {
console.log(messageList)
})