浏览 SDKs · React Native
平台
SDKsReact Native

撤回消息

OpenIM React Native SDK 撤回消息。

复制

撤回已发送的消息。撤回成功后,会话各端会将对应消息替换为撤回提示状态。

await OpenIMSDK.revokeMessage({
  conversationID,
  clientMsgID,
});

参数说明

参数类型必填含义
conversationIDstring是消息所属的会话 ID。
clientMsgIDstring是要撤回的消息客户端 ID。

返回结果

调用成功代表撤回请求已被服务端处理完成。撤回的时间范围(如发送后一定时间内)及操作权限由服务端策略校验,超出时限或无权操作将返回错误。

监听消息撤回

消息被成功撤回后,会话各端会收到 OnNewRecvMessageRevoked 事件通知。回调携带 RevokedInfo 数据对象,客户端应根据 clientMsgID 找到原消息,并将其展示状态变更为撤回提示(如展示“xx 撤回了一条消息”)。

interface RevokedInfo {
  clientMsgID: string;
  revokerID: string;
  revokerRole: number;
  revokerNickname: string;
  sessionType: number;
}

const handleMessageRevoked = (revokedInfo: RevokedInfo) => {
  // 根据 revokedInfo.clientMsgID 更新对应消息状态为已撤回
};

// 设置监听
OpenIMSDK.on(OpenIMEvent.OnNewRecvMessageRevoked, handleMessageRevoked);

// 取消监听
OpenIMSDK.off(OpenIMEvent.OnNewRecvMessageRevoked, handleMessageRevoked);

组件销毁、退出登录或切换账号时,取消该监听。若仅希望从当前设备移除消息记录而不影响对方,请调用删除本地消息。