消息回应
IMKit 从 26.6.0 开始支持消息回应(Message Reaction)UI。开启后,用户可以在会话页面长按消息,选择表情回应,用 emoji 对消息进行回应;消息气泡下方会展示回应摘要,并支持查看回应详情。
提示
IMKit 消息回应默认关闭,需要通过配置开启。
IMKit 仅提供会话页面 UI。回应的增删、查询和监听能力由 IMLib 的消息回应接口提供。
使用限制
- IMKit 内置会话页面仅支持单聊和群聊中的消息回应。
- 支持的内置消息类型包括文本(
RC:TxtMsg)、图片(RC:ImgMsg)、高清语音(RC:HQVCMsg)、小视频(RC:SightMsg)、文件(RC:FileMsg)、位置(RC:LBSMsg)、图文(RC:ImgTextMsg)、引用消息(RC:ReferenceMsg)和合并转发消息(RC:CombineMsg)。 - 发送中、发送失败、取消发送、本地尚未生成 UID、阅后即焚模式中的消息,不展示默认回应入口。
- IMKit 不在会话列表中展示消息回应。
开启消息回应
建议在打开会话页面前开启消息回应,以确保会话页按预期展示回应入口和状态。
TypeScript
let config = RongIM.getInstance().conversationService().getConversationConfig();
config.setEnableMessageReaction(true);
RongIM.getInstance().conversationService().setConversationConfig(config);
关闭时传入 false。
TypeScript
let config = RongIM.getInstance().conversationService().getConversationConfig();
config.setEnableMessageReaction(false);
RongIM.getInstance().conversationService().setConversationConfig(config);
设置展示模式
消息回应展示在消息气泡下方。IMKit 提供两种展示模式,默认使用 ReactionBarStyle.Detail。
| 展示模式 | 说明 |
|---|---|
ReactionBarStyle.Detail | 详细模式,显示回应表情和用户名称摘要;当名称过长或摘要无法完整展示时,会截断并补充人数信息。 |
ReactionBarStyle.Number | 数字模式,仅显示回应表情和人数,例如 ❤️|3人。 |
TypeScript
let config = RongIM.getInstance().conversationService().getConversationConfig();
config.setReactionBarStyle(ReactionBarStyle.Number);
RongIM.getInstance().conversationService().setConversationConfig(config);
Detail 模式下,用户名称会优先使用群成员资料或用户资料中的展示名;获取失败时使用 userId。