HyphenateChatSDK 3.9.9.1
构造函数 | 属性 | 所有成员列表
EMConversation类 参考

#import <EMConversation.h>

类 EMConversation 继承关系图:

构造函数

(EMChatMessage *_Nullable) - lastReceivedMessage
 
(void) - insertMessage:error:
 
(void) - appendMessage:error:
 
(void) - deleteMessageWithId:error:
 
(void) - deleteAllMessages:
 
(void) - removeMessagesFromServerMessageIds:completion:
 
(void) - removeMessagesFromServerWithTimeStamp:completion:
 
(void) - updateMessageChange:error:
 
(void) - markMessageAsReadWithId:error:
 
(void) - markAllMessagesAsRead:
 
(EMChatMessage *_Nullable) - loadMessageWithId:error:
 
(NSArray< EMChatMessage * > *_Nullable) - loadMessagesStartFromId:count:searchDirection:
 
(void) - loadMessagesStartFromId:count:searchDirection:completion:
 
(NSArray< EMChatMessage * > *_Nullable) - loadMessagesWithType:timestamp:count:fromUser:searchDirection:
 
(void) - loadMessagesWithType:timestamp:count:fromUser:searchDirection:completion:
 
(NSArray< EMChatMessage * > *_Nullable) - loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:
 
(void) - loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:completion:
 
(NSArray< EMChatMessage * > *_Nullable) - loadCustomMsgWithKeyword:timestamp:count:fromUser:searchDirection:
 
(void) - loadCustomMsgWithKeyword:timestamp:count:fromUser:searchDirection:completion:
 
(NSArray< EMChatMessage * > *_Nullable) - loadMessagesFrom:to:count:
 
(void) - loadMessagesFrom:to:count:completion:
 

属性

NSString * conversationId
 
EMConversationType type
 
int unreadMessagesCount
 
int messagesCount
 
NSDictionary * ext
 
BOOL isChatThread
 
EMChatMessagelatestMessage
 

详细描述

聊天会话类。

函数文档

◆ appendMessage:error:

- (void) appendMessage: (EMChatMessage *_Nonnull)  aMessage
error: (EMError **_Nullable)  pError 

插入一条消息到 SDK 本地数据库会话尾部,消息的 conversationId 应该和会话的 conversationId 一致,消息会被插入 SDK 本地数据库,并且更新会话的 latestMessage 等属性。

参数
aMessage消息实例。
pError错误信息。

◆ deleteAllMessages:

- (void) deleteAllMessages: (EMError **_Nullable)  pError

删除 SDK 本地数据库中该会话所有消息,清除 SDK 本地数据库中的消息。

参数
pError错误信息。

◆ deleteMessageWithId:error:

- (void) deleteMessageWithId: (NSString *_Nonnull)  aMessageId
error: (EMError **_Nullable)  pError 

从 SDK 本地数据库删除一条消息。

参数
aMessageId要删除消失的 ID。
pError错误信息。

◆ insertMessage:error:

- (void) insertMessage: (EMChatMessage *_Nonnull)  aMessage
error: (EMError **_Nullable)  pError 

插入一条消息在 SDK 本地数据库,消息的 conversation ID 应该和会话的 conversation ID 一致,消息会根据消息里的时间戳被插入 SDK 本地数据库,并且更新会话的 latestMessage 等属性。

insertMessage 会更新对应 Conversation 里的 latestMessage。

Method EMConversation insertMessage:error: = EMChatManager importMsessage:completion: + update conversation latest message

参数
aMessage消息实例。
pError错误信息。

◆ lastReceivedMessage

- (EMChatMessage *_Nullable) lastReceivedMessage

收到的对方发送的最后一条消息,也是会话里的最新消息。

返回
消息实例。

◆ loadCustomMsgWithKeyword:timestamp:count:fromUser:searchDirection:

- (NSArray< EMChatMessage * > *_Nullable) loadCustomMsgWithKeyword: (NSString *)  aKeyword
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *_Nullable)  aSender
searchDirection: (EMMessageSearchDirection)  aDirection 

从 SDK 本地数据库获取包含指定内容的自定义类型消息,如果参考的时间戳为负数,则从最新消息向前取,如果 aCount 小于等于 0 当作 1 处理。

同步方法,会阻塞当前线程。

参数
aKeywords关键词。设为 NIL 表示忽略该参数。
aTimestamp传入的时间戳,单位为毫秒。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
aSender消息发送方。设为 NIL 表示忽略该参数。
aDirection消息搜索方向,详见 EMMessageSearchDirection。
返回
消息列表。

◆ loadCustomMsgWithKeyword:timestamp:count:fromUser:searchDirection:completion:

- (void) loadCustomMsgWithKeyword: (NSString *_Nullable)  aKeyword
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *_Nullable)  aSender
searchDirection: (EMMessageSearchDirection)  aDirection
completion: (void(^)(NSArray< EMChatMessage * > *_Nullable aMessages, EMError *_Nullable aError))  aCompletionBlock 

从 SDK 本地数据库获取包含指定内容的自定义类型消息,如果参考的时间戳为负数,则从最新消息向前取,如果 aCount 小于等于 0 当作 1 处理。

参数
aKeywords关键词。设为 NIL 表示忽略该参数。
aTimestamp传入的 Unix 时间戳,单位为毫秒。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
aSender消息发送方。设为 NIL 表示忽略该参数。
aDirection消息搜索方向,详见 EMMessageSearchDirection。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。

◆ loadMessagesFrom:to:count:

- (NSArray< EMChatMessage * > *_Nullable) loadMessagesFrom: (long long)  aStartTimestamp
to: (long long)  aEndTimestamp
count: (int)  aCount 

从 SDK 本地数据库获取指定时间段内的消息,取到的消息按时间排序,为了防止占用太多内存,建议你指定加载消息的最大数。

该方法返回的消息按时间顺序排列。

同步方法,会阻塞当前线程。

参数
aStartTimestamp毫秒级开始时间。
aEndTimestamp结束时间。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
返回
消息列表。

◆ loadMessagesFrom:to:count:completion:

- (void) loadMessagesFrom: (long long)  aStartTimestamp
to: (long long)  aEndTimestamp
count: (int)  aCount
completion: (void(^)(NSArray< EMChatMessage * > *_Nullable aMessages, EMError *_Nullable aError))  aCompletionBlock 

从 SDK 本地数据库获取指定时间段内的消息,取到的消息按时间排序,为了防止占用太多内存,建议你指定加载消息的最大数。

参数
aStartTimestamp毫秒级开始时间。
aEndTimestamp结束时间。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。

◆ loadMessagesStartFromId:count:searchDirection:

- (NSArray< EMChatMessage * > *_Nullable) loadMessagesStartFromId: (NSString *_Nullable)  aMessageId
count: (int)  aCount
searchDirection: (EMMessageSearchDirection)  aDirection 

从 SDK 本地数据库获取指定数量的消息。

取到的消息按时间排序,并且不包含参考的消息,如果传入消息的 ID 为空,则从最新消息取。

同步方法,会阻塞当前线程。

参数
aMessageId传入消息的 ID。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
aDirection消息搜索方向,详见 EMMessageSearchDirection。
返回
消息列表。

◆ loadMessagesStartFromId:count:searchDirection:completion:

- (void) loadMessagesStartFromId: (NSString *_Nullable)  aMessageId
count: (int)  aCount
searchDirection: (EMMessageSearchDirection)  aDirection
completion: (void(^)(NSArray< EMChatMessage * > *_Nullable aMessages, EMError *_Nullable aError))  aCompletionBlock 

从 SDK 本地数据库获取指定数量的消息。

该方法返回的消息按时间顺序排列。

参数
aMessageId参考消息的 ID。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
aDirection消息搜索方向,详见 EMMessageSearchDirection。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。

◆ loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:

- (NSArray< EMChatMessage * > *_Nullable) loadMessagesWithKeyword: (NSString *_Nullable)  aKeyword
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *_Nullable)  aSender
searchDirection: (EMMessageSearchDirection)  aDirection 

从 SDK 本地数据库获取包含指定内容的全部类型的消息,取到的消息按时间排序,如果参考的时间戳为负数,则从最新消息向前取,如果 aCount 小于等于 0 当作 1 处理。

同步方法,会阻塞当前线程。

参数
aKeywords搜索关键词,设为 NIL 表示忽略该参数。
aTimestamp传入的时间戳,单位为毫秒。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
aSender消息发送方,设为 NIL 表示忽略该参数。
aDirection消息搜索方向,详见 EMMessageSearchDirection。
返回
消息列表。

◆ loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:completion:

- (void) loadMessagesWithKeyword: (NSString *_Nullable)  aKeyword
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *_Nullable)  aSender
searchDirection: (EMMessageSearchDirection)  aDirection
completion: (void(^)(NSArray< EMChatMessage * > *_Nullable aMessages, EMError *_Nullable aError))  aCompletionBlock 

从 SDK 本地数据库获取包含指定内容的全部类型的消息,取到的消息按时间排序,如果参考的时间戳为负数,则从最新消息向前取,如果 aCount 小于等于 0 当作 1 处理。

参数
aKeywords关键词。设为 NIL 表示忽略该参数。
aTimestamp传入的 Unix 时间戳,单位为毫秒。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
aSender消息发送方。设为 NIL 表示忽略该参数。
aDirection消息搜索方向,详见 EMMessageSearchDirection。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。

◆ loadMessagesWithType:timestamp:count:fromUser:searchDirection:

- (NSArray< EMChatMessage * > *_Nullable) loadMessagesWithType: (EMMessageBodyType)  aType
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *_Nullable)  aUsername
searchDirection: (EMMessageSearchDirection)  aDirection 

从 SDK 本地数据库获取指定类型的消息。

该方法返回的消息按时间顺序排列。

同步方法,会阻塞当前线程。

参数
aType消息类型,txt:文本消息,img:图片消息,loc:位置消息,audio:语音消息,video:视频消息,file:文件消息,cmd: 透传消息。
aTimestamp当前传入消息的设备时间戳,单位为毫秒。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
aUsername消息发送方。设为 NIL 表示忽略该参数。
aDirection消息搜索方向,详见 EMMessageSearchDirection。
返回
消息列表。

◆ loadMessagesWithType:timestamp:count:fromUser:searchDirection:completion:

- (void) loadMessagesWithType: (EMMessageBodyType)  aType
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *_Nullable)  aUsername
searchDirection: (EMMessageSearchDirection)  aDirection
completion: (void(^)(NSArray< EMChatMessage * > *_Nullable aMessages, EMError *_Nullable aError))  aCompletionBlock 

从 SDK 本地数据库获取指定类型的消息,取到的消息按时间排序,如果参考的时间戳为负数,则从最新消息取,如果 aCount 小于等于 0 当作 1 处理。

参数
aType消息类型,txt:文本消息,img:图片消息,loc:位置消息,audio:语音消息,video:视频消息,file:文件消息,cmd: 透传消息。
aTimestamp当前传入消息的设备时间戳,单位为毫秒。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会将该参数作 1 处理。
aUsername消息发送方。设为 NIL 表示忽略该参数。
aDirection消息搜索方向,详见 EMMessageSearchDirection。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。

◆ loadMessageWithId:error:

- (EMChatMessage *_Nullable) loadMessageWithId: (NSString *_Nonnull)  aMessageId
error: (EMError **_Nullable)  pError 

从 SDK 本地数据库获取指定 ID 的消息。

参数
aMessageId消息 ID。
pError错误信息。

◆ markAllMessagesAsRead:

- (void) markAllMessagesAsRead: (EMError **_Nullable)  pError

将 SDK 本地数据库所有未读消息设置为已读。

参数
pError错误信息。

◆ markMessageAsReadWithId:error:

- (void) markMessageAsReadWithId: (NSString *_Nonnull)  aMessageId
error: (EMError **_Nullable)  pError 

将 SDK 本地数据库消息设置为已读。

参数
aMessageId要设置消息的 ID。
pError错误信息。

◆ removeMessagesFromServerMessageIds:completion:

- (void) removeMessagesFromServerMessageIds: (NSArray< __kindof NSString * > *_Nonnull)  messageIds
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 

从会话中删除消息(包括本地存储和服务器存储)。

参数
messageIds要删除消息id字符串数组。
completion接口回调成功或者失败

◆ removeMessagesFromServerWithTimeStamp:completion:

- (void) removeMessagesFromServerWithTimeStamp: (NSTimeInterval)  beforeTimeStamp
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 

从会话中删除消息(包括本地存储和服务器存储)。

参数
beforeTimeStamp要删除哪一条消息之前的消息时间戳。
completion接口回调成功或者失败

◆ updateMessageChange:error:

- (void) updateMessageChange: (EMChatMessage *_Nonnull)  aMessage
error: (EMError **_Nullable)  pError 

更新 SDK 本地数据库的消息。

不能更新消息 ID,消息更新后,会话的 latestMessage 等属性进行相应更新。

参数
aMessage要更新的消息。
pError错误信息。

属性说明

◆ conversationId

- (NSString*) conversationId
readnonatomiccopy

会话 ID。 对于单聊类型,会话 ID 同时也是对方用户的名称。 对于群聊类型,会话 ID 同时也是对方群组的 ID,并不同于群组的名称。 对于聊天室类型,会话 ID 同时也是聊天室的 ID,并不同于聊天室的名称。 对于 HelpDesk 类型,会话 ID 与单聊类型相同,是对方用户的名称。

◆ ext

- (NSDictionary*) ext
readwritenonatomiccopy

会话扩展属性 子区功能目前版本暂不可设置

◆ isChatThread

- (BOOL) isChatThread
readwritenonatomicassign

判断是否是thread会话。

◆ latestMessage

- (EMChatMessage*) latestMessage
readnonatomicstrong

会话最新一条消息。

◆ messagesCount

- (int) messagesCount
readnonatomicassign

对话中的消息数量

◆ type

- (EMConversationType) type
readnonatomicassign

会话类型。

◆ unreadMessagesCount

- (int) unreadMessagesCount
readnonatomicassign

对话中未读取的消息数量。


该类的文档由以下文件生成: