EMConversation class

会话类,用于定义单聊会话、群聊会话和聊天室会话。每类会话中包含发送和接收的消息。

以下示例代码展示如何从会话中获取未读消息数:

  // The `ConversationId` can be the other party ID, the group ID, or the chat room ID.
  EMConversation? con = await EMClient.getInstance.chatManager.getConversation(conversationId);
  int? unreadCount = con?.unreadCount;

Constructors

EMConversation.fromJson(Map<String, dynamic> map)
factory

Properties

ext Map<String, String>?
获取会话扩展属性。
read-only
hashCode int
The hash code for this object.
read-onlyinherited
id String
获取会话 ID。
final
isChatThread bool
是否为子区会话。
final
isPinned bool
是否为置顶会话:
final
marks List<ConversationMarkType>?
会话标记。
final
pinnedTime int
会话置顶的 UNIX 时间戳,单位为毫秒。未置顶时值为 0
final
runtimeType Type
A representation of the runtime type of the object.
read-onlyinherited
type EMConversationType
会话类型。
final

Methods

appendMessage(EMMessage message) Future<void>
插入一条消息到会话尾部。
deleteAllMessages() Future<void>
同时从内存和本地数据库中删除会话中的所有消息。
deleteMessage(String messageId) Future<void>
删除会话中的一条消息,同时清除内存和数据库中的消息。
deleteMessageByIds(List<String> messageIds) Future<void>
根据时间删除本地消息。
deleteMessagesWithTs(int startTs, int endTs) Future<void>
从本地数据库中删除指定时间段内的消息。
insertMessage(EMMessage message) Future<void>
插入一条消息在 SDK 本地数据库,消息的 conversation ID 应该和会话的 conversation ID 一致,消息会根据消息里的时间戳被插入 SDK 本地数据库,并且更新会话的 latestMessage 等属性。
lastReceivedMessage() Future<EMMessage?>
获取最近收到的一条消息。
latestMessage() Future<EMMessage?>
获取会话的最新一条消息。
loadMessage(String messageId) Future<EMMessage?>
获取指定 ID 的消息。
loadMessages({String startMsgId = '', int loadCount = 20, EMSearchDirection direction = EMSearchDirection.Up}) Future<List<EMMessage>>
从本地数据库加载消息。
loadMessagesFromTime({required int startTime, required int endTime, int count = 20}) Future<List<EMMessage>>
加载一个时间段内的消息,不超过最大数量。
loadMessagesWithKeyword(String keywords, {String? sender, int timestamp = -1, int count = 20, MessageSearchScope searchScope = MessageSearchScope.All, EMSearchDirection direction = EMSearchDirection.Up}) Future<List<EMMessage>>
根据消息中的关键词、消息时间戳、要搜索的消息条数、搜索范围和搜索方向从 SDK 本地数据库中搜索指定数量的消息。
loadMessagesWithMsgType({required MessageType type, int timestamp = -1, int count = 20, String? sender, EMSearchDirection direction = EMSearchDirection.Up}) Future<List<EMMessage>>
根据消息类型、搜索消息的时间点、搜索结果的最大条数、搜索来源和搜索方向从 SDK 本地数据库中搜索指定数量的消息。
loadPinnedMessages() Future<List<EMMessage>>
获取会话内的置顶消息列表。
markAllMessagesAsRead() Future<void>
将所有消息标为已读。
markMessageAsRead(String messageId) Future<void>
将消息标为已读。
messagesCount() Future<int>
会话中的消息数
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
setExt(Map<String, String>? ext) Future<void>
设置会话扩展属性。
toString() String
A string representation of this object.
inherited
unreadCount() Future<int>
获取会话的消息未读数。
updateMessage(EMMessage message) Future<void>
更新 SDK 本地数据库的消息。

Operators

operator ==(Object other) bool
The equality operator.
inherited