跳到主要内容

@ 消息

提及(@)是群聊会话中常见功能,允许用户可以会话中提及指定用户,或全部群成员,以增强消息的提示作用。使用 @ 功能后,消息内容中会额外携带 [mentionedInfo] 对象。IMKit 默认启用了 @ 功能。

局限

  • 仅支持群聊会话。
  • IMKit 默认仅实现了在发送文本消息、引用消息时使用 @ 功能。
  • @ 消息可以被转发,但转发的只是纯文本,不再具备 @ 功能。

用法

IMKit 默认在配置中启用了 @ 功能,用法如下:

  • 在会话页面输入 @ 符号之后,IMKit 会跳转到成员列表选择页面,返回页面以后会带回选择人的信息。
Dart
// 发送@消息
final engineProvider = context.read<RCKEngineProvider>();
final engine = engineProvider.engine;

// 创建文本消息
RCIMIWTextMessage? textMessage = await engine?.createTextMessage(
RCIMIWConversationType.group,
'group123',
null,
'@用户名 这是一条@消息'
);

if (textMessage != null) {
// 设置@信息
textMessage.mentionedInfo = RCIMIWMentionedInfo.create(
type: RCIMIWMentionedType.user,
userIdList: ['user123'],
mentionedContent: '@用户名'
);

// 发送消息
engine?.sendMessage(
textMessage,
callback: RCIMIWSendMessageCallback(
onMessageSaved: (RCIMIWMessage? message) {
// 消息已保存到本地数据库
},
onMessageSent: (int? code, RCIMIWMessage? message) {
if (code == 0) {
// 发送成功
} else {
// 发送失败
}
}
)
);
}