撤回消息
用户通过 App 成功发送了一条消息之后,可能发现消息内容错误等情况,希望将消息撤回,同时从接收者的消息记录中移除该消息。IMKit 默认实现了消息撤回功能。
提示
IMKit 在撤回消息后,会替换聊天记录中的原始消息为一条 objectName 为 RC:RcNtf
的撤回通知消息(RecallNotificationMessage
),可参见服务端文档通知类消息格式。
用法
IMKit 默认启用撤回功能。用户在会话页面长按消息(已发送成功的消息)可打开弹窗,选择撤回。消息撤回后在一定时间内可以“重新编辑”。
定制化
修改消息可撤回的最大时间
IMKit 默认允许在消息发送后 180 秒内撤回。您可以通过全局配置调整该上限,需要在会话页面展示前设置。
TypeScript
let config = RongIM.getInstance().conversationService().getConversationConfig()
config.setMaxRecallDuration(180)
RongIM.getInstance().conversationService().setConversationConfig(config)
修改撤回后可重新编辑的时间
IMKit 默认允许在消息撤回后 30 秒内可点 击重新编辑,仅文本消息支持撤回再编辑。您可以通过全局配置调整该上限,需要在会话页面展示前设置。
TypeScript
let config = RongIM.getInstance().conversationService().getConversationConfig()
config.setMaxEditableDuration(30)
RongIM.getInstance().conversationService().setConversationConfig(config)
其他定制化
IMKit SDK 默认已经实现了一套消息撤回和展示逻辑,不需要额外调用会话相关 API。如果已有实现无法满足您的需求,可以使用 RongIM
中相关 API。详见撤回消息。
关闭撤回功能
IMKit 目前不支持关闭撤回功能。