跳到主要内容

引用回复

IMKit 支持引用回复功能,允许用户在聊天页面中回复彼此的消息。消息将出现在会话页面的消息列表组件中。引用回复功能默认发送的消息包含引用消息内容对象 ReferenceMessage(类型标识:RC:ReferenceMsg)。

alt(width=250) alt(width=250)

局限

引用回复功能目前有以下限制:

  • 仅支持文本消息、文件消息、图文消息、图片消息、引用消息的引用。
  • 引用深度仅支持一度,即只能引用回复原始消息。如果多重引用,只展示上一层被引消息内容。

用法

IMKit 会话页面默认已启用引用回复功能。用户在会话页面长按消息,在弹框里选择引用消息,即可引用该消息。在输入区添加消息内容后,SDK 默认会将输入内容与被引消息组合为 ReferenceMessage,并发送到会话中。

关闭引用回复功能

IMKit 5.X 版本不支持通过修改 XML 资源文件控制此功能。如需关闭引用回复功能,可以修改 IMKit 全局配置:

在 init 之后调用。

RongConfigCenter.featureConfig().enableReference(false);

自定义引用消息的 UI

引用回复功能默认发送的消息包含引用消息内容(RC:ReferenceMsg),使用 ReferenceMessageItemProvider 模板展示在消息列表中。

所有消息展示模板都继承自 BaseMessageItemProvider<CustomMessage>,您可以继承 BaseMessageItemProvider<CustomMessage>,自行实现一个引用消息展示模板类,并将该自定义模板提供给 SDK。

您也可以直接替换引用消息展示模板中引用的样式资源、字符串资源和图标资源。详见 IMKit 源码 ReferenceMessageItemProvider.java 中引用的资源。

例如:您可以复制 IMKit 源码中的 rc_item_reference_message.xml 的全部内容,您可以在项目下创建 /res/layout/rc_item_reference_message.xml 文件,修改其中定义的样式值。请勿删减 SDK 默认控件,不要随意修改 View 的 ID。