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