HyphenateChatSDK  4.6.0
构造函数 | 所有成员列表
<IEMChatManager>协议 参考

#import <IEMChatManager.h>

类 <IEMChatManager> 继承关系图:

构造函数

(void) - addDelegate:delegateQueue:
 
(void) - removeDelegate:
 
(NSArray< EMConversation * > *_Nullable) - getAllConversations
 
(NSArray< EMConversation * > *_Nullable) - filterConversationsFromDB:filter:
 
(void) - cleanConversationsMemoryCache
 
(NSArray< EMConversation * > *_Nullable) - getAllConversations:
 
(void) - getConversationsFromServer:
 
(void) - getConversationsFromServerByPage:pageSize:completion:
 
(void) - getConversationsFromServerWithCursor:pageSize:completion:
 
(void) - getPinnedConversationsFromServerWithCursor:pageSize:completion:
 
(void) - pinConversation:isPinned:completionBlock:
 
(EMConversation *_Nullable) - getConversationWithConvId:
 
(EMConversation *_Nullable) - getConversation:type:createIfNotExist:
 
(EMConversation *_Nullable) - getConversation:type:createIfNotExist:isThread:
 
(void) - deleteConversation:isDeleteMessages:completion:
 
(void) - deleteServerConversation:conversationType:isDeleteServerMessages:completion:
 
(void) - deleteConversations:isDeleteMessages:completion:
 
(void) - importConversations:completion:
 
(EMChatMessage *_Nullable) - getMessageWithMessageId:
 
(NSString *_Nullable) - getMessageAttachmentPath:
 
(void) - importMessages:completion:
 
(void) - updateMessage:completion:
 
(void) - modifyMessage:body:completion:
 
(void) - sendMessageReadAck:toUser:completion:
 
(void) - sendGroupMessageReadAck:toGroup:content:completion:
 
(void) - ackConversationRead:completion:
 
(void) - recallMessageWithMessageId:completion:
 
(void) - recallMessageWithMessageId:ext:completion:
 
(void) - sendMessage:progress:completion:
 
(void) - resendMessage:progress:completion:
 
(void) - downloadMessageThumbnail:progress:completion:
 
(void) - downloadMessageAttachment:progress:completion:
 
(void) - downloadAndParseCombineMessage:completion:
 
(EMCursorResult< EMChatMessage * > *_Nullable) - fetchHistoryMessagesFromServer:conversationType:startMessageId:fetchDirection:pageSize:error:
 
(EMCursorResult< EMChatMessage * > *_Nullable) - fetchHistoryMessagesFromServer:conversationType:startMessageId:pageSize:error:
 
(void) - asyncFetchHistoryMessagesFromServer:conversationType:startMessageId:pageSize:completion:
 
(void) - asyncFetchHistoryMessagesFromServer:conversationType:startMessageId:fetchDirection:pageSize:completion:
 
(void) - asyncFetchGroupMessageAcksFromServer:groupId:startGroupAckId:pageSize:completion:
 
(void) - reportMessageWithId:tag:reason:completion:
 
(void) - deleteMessagesBefore:completion:
 
(void) - removeMessagesFromServerWithConversation:messageIds:completion:
 
(void) - removeMessagesFromServerWithConversation:timeStamp:completion:
 
(void) - translateMessage:targetLanguages:completion:
 
(void) - fetchSupportedLanguages:
 
(NSArray< EMChatMessage * > *_Nullable) - loadMessagesWithType:timestamp:count:fromUser:searchDirection:
 
(void) - loadMessagesWithType:timestamp:count:fromUser:searchDirection:completion:
 
(NSArray< EMChatMessage * > *) - loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:
 
(void) - loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:completion:
 
(void) - loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:scope:completion:
 
(void) - addReaction:toMessage:completion:
 
(void) - removeReaction:fromMessage:completion:
 
(void) - getReactionList:groupId:chatType:completion:
 
(void) - getReactionDetail:reaction:cursor:pageSize:completion:
 
(void) - fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion:
 
(void) - addConversationMark:mark:completion:
 
(void) - removeConversationMark:mark:completion:
 
(void) - getConversationsFromServerWithCursor:filter:completion:
 
(void) - deleteAllMessagesAndConversations:completion:
 
(void) - pinMessage:completion:
 
(void) - unpinMessage:completion:
 
(void) - getPinnedMessagesFromServer:completion:
 
(EMError *) - markAllConversationsAsRead
 

详细描述

聊天相关操作代理协议。

消息都是从本地数据库中加载,不是从服务端加载。

函数文档

- (void) ackConversationRead: (NSString *_Nonnull)  conversationId
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

发送会话已读回执。

该方法仅适用于单聊会话。

发送会话已读回执会通知服务器将指定的会话未读消息数置为 0。调用该方法后对方会收到 onConversationRead 回调。

对话方(包含多端多设备)将会在回调方法 EMChatManagerDelegate onConversationRead(String, String) 中接收到回调。

为了减少调用次数,我们建议在进入聊天页面有大量未读消息时调用该方法,在聊天过程中调用 sendMessageReadAck 方法发送消息已读回执。

异步方法。

参数
conversationId会话 ID。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) addConversationMark: (NSArray< NSString * > *_Nonnull)  conversationIds
mark: (EMMarkType)  mark
completion: (void(^)(EMError *_Nullable aError))  completion 
required

标记会话。

调用该方法会同时为本地和服务器端的会话添加标记。

参数
conversationIds会话 ID 列表。
mark要添加的会话标记。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) addDelegate: (id< EMChatManagerDelegate > _Nullable)  aDelegate
delegateQueue: (dispatch_queue_t _Nullable)  aQueue 
required

添加回调代理。

参数
aDelegate实现代理协议的对象。
aQueue执行代理方法的队列。若在主线程上运行 app,将该参数设置为空。
- (void) addReaction: (NSString *)  reaction
toMessage: (NSString *)  messageId
completion: (nullable void(^)(EMError *_Nullable))  completion 
required

添加 Reaction。

参数
reactionReaction 内容。
messageId消息 ID。
completion该方法完成的回调。如果有错误会包含错误信息。
- (void) asyncFetchGroupMessageAcksFromServer: (NSString *_Nonnull)  aMessageId
groupId: (NSString *_Nonnull)  aGroupId
startGroupAckId: (NSString *_Nonnull)  aGroupAckId
pageSize: (int)  aPageSize
completion: (void(^)(EMCursorResult< EMGroupMessageAck * > *_Nullable aResult, EMError *_Nullable error, int totalCount))  aCompletionBlock 
required

从服务器获取指定群消息的已读回执。

可调用该方法了解有多少群成员阅读了指定的群消息。

异步方法。

参数
aMessageId要获取已读回执的消息 ID。
aGroupId群组 ID。
aGroupAckId群消息已读回执 ID。
aPageSize每页期望获取的回执条数。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) asyncFetchHistoryMessagesFromServer: (NSString *_Nonnull)  aConversationId
conversationType: (EMConversationType)  aConversationType
startMessageId: (NSString *_Nullable)  aStartMessageId
fetchDirection: (EMMessageFetchHistoryDirection)  direction
pageSize: (int)  aPageSize
completion: ("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead")  __deprecated_msg 
required

从服务器获取指定会话的消息。

异步方法。

参数
aConversationId会话 ID。
aConversationType会话类型。
aStartMessageId查询的起始消息 ID。若该参数为空,SDK 从最新一条消息开始获取。
direction消息搜索方向。详见 EMMessageFetchHistoryDirection
aPageSize每页期望获取的消息条数。取值范围为 [1,50]。
aCompletionBlock该方法完成调用的回调。
- (void) asyncFetchHistoryMessagesFromServer: (NSString *_Nonnull)  aConversationId
conversationType: (EMConversationType)  aConversationType
startMessageId: (NSString *_Nullable)  aStartMessageId
pageSize: (int)  aPageSize
completion: ("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead")  __deprecated_msg 
required

从服务器获取指定会话的消息。

异步方法。

参数
aConversationId会话 ID。
aConversationType会话类型。
aStartMessageId查询的起始消息 ID。
aPageSize每页期望获取的消息条数。
aCompletionBlock该方法完成调用的回调。
- (void) cleanConversationsMemoryCache
required

清除本地内存中的所有会话释放内存。

- (void) deleteAllMessagesAndConversations: (BOOL)  clearServerData
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

清空所有会话及其消息。

异步方法。

参数
clearSeverData是否删除服务端所有会话及其消息:
  • YES:是。服务端的所有会话及其消息会被清除,当前用户无法再从服务端拉取消息和会话,其他用户不受影响。
  • (默认)NO:否。只清除本地所有会话及其消息,服务端的会话及其消息仍保留。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) deleteConversation: (NSString *_Nonnull)  aConversationId
isDeleteMessages: (BOOL)  aIsDeleteMessages
completion: (void(^)(NSString *_Nullable aConversationId, EMError *_Nullable aError))  aCompletionBlock 
required

从本地数据库中删除一个会话。

参数
aConversationId会话 ID。
aIsDeleteMessages是否删除会话中的消息。
  • YES: 是;
  • NO: 否。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) deleteConversations: (NSArray< EMConversation * > *_Nullable)  aConversations
isDeleteMessages: (BOOL)  aIsDeleteMessages
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

删除一组会话。

参数
aConversations会话列表。
aIsDeleteMessages是否删除会话中的消息。
  • YES: 是;
  • NO: 否。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) deleteMessagesBefore: (NSUInteger)  aTimestamp
completion: (void(^)(EMError *error))  aCompletion 
required

删除指定时间戳之前的本地历史消息。在设置EMOptionsautoLoadConversations属性为 false后,会导致被过滤的会话拉消息未读数不准确。

异步方法。

参数
aTimestamp指定的消息时间戳,单位为毫秒。时间戳之前的本地消息会被删除。
aCompletion该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) deleteServerConversation: (NSString *_Nonnull)  aConversationId
conversationType: (EMConversationType)  aConversationType
isDeleteServerMessages: (BOOL)  aIsDeleteServerMessages
completion: (void(^)(NSString *_Nullable aConversationId, EMError *_Nullable aError))  aCompletionBlock 
required

删除服务器会话。

参数
aConversationId会话 ID。
aConversationType会话类型。
aIsDeleteMessages是否同时删除会话中的消息。
  • YES: 是;
  • NO: 否。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) downloadAndParseCombineMessage: (EMChatMessage *_Nonnull)  aMessage
completion: (void(^)(NSArray< EMChatMessage * > *_Nullable messages, EMError *_Nullable error))  aCompletionBlock 
required

下载并解析合并消息中的附件。

异步方法。

参数
aMessage合并消息对象。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) downloadMessageAttachment: (EMChatMessage *_Nonnull)  aMessage
progress: (void(^)(int progress))  aProgressBlock
completion: (void(^)(EMChatMessage *_Nullable message, EMError *_Nullable error))  aCompletionBlock 
required

下载消息附件(语音、视频、图片原图、文件)。

SDK 会自动下载语音消息。如果自动下载失败,你可以调用该方法。

异步方法。

参数
aMessage消息。
aProgressBlock附件下载进度回调 block。进度值的范围为 [0,100]。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) downloadMessageThumbnail: (EMChatMessage *_Nonnull)  aMessage
progress: (void(^)(int progress))  aProgressBlock
completion: (void(^)(EMChatMessage *_Nullable message, EMError *_Nullable error))  aCompletionBlock 
required

下载缩略图(图片缩略图或视频的第一帧图片)。

SDK 会自动下载缩略图。如果自动下载失败,你可以调用该方法下载缩略图。

参数
aMessage消息对象。
aProgressBlock附件下载进度回调 block。进度值的范围为 [0,100]。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (EMCursorResult<EMChatMessage*> *_Nullable) fetchHistoryMessagesFromServer: (NSString *_Nonnull)  aConversationId
conversationType: (EMConversationType)  aConversationType
startMessageId: (NSString *_Nullable)  aStartMessageId
fetchDirection: (EMMessageFetchHistoryDirection)  direction
pageSize: (int)  aPageSize
error: ("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead")  __deprecated_msg 
required

从服务器获取指定会话的消息。

参数
aConversationId会话 ID。
aConversationType会话类型。
aStartMessageId查询的起始消息 ID。若该参数为空,SDK 从最新一条消息开始获取。
direction消息搜索方向。详见 EMMessageFetchHistoryDirection
aPageSize每页期望获取的消息条数。
pError错误信息。
返回
获取的消息内容列表。
- (EMCursorResult<EMChatMessage*> *_Nullable) fetchHistoryMessagesFromServer: (NSString *_Nonnull)  aConversationId
conversationType: (EMConversationType)  aConversationType
startMessageId: (NSString *_Nullable)  aStartMessageId
pageSize: (int)  aPageSize
error: ("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead")  __deprecated_msg 
required

从服务器获取指定会话的消息。

参数
aConversationId会话 ID。
aConversationType会话类型。
aStartMessageId查询的起始消息 ID。若该参数为空,SDK 从最新一条消息开始获取。
aPageSize每页期望获取的消息条数。
pError错误信息。
返回
获取的消息内容列表。
- (void) fetchMessagesFromServerBy: (NSString *)  conversationId
conversationType: (EMConversationType)  type
cursor: (NSString *_Nullable)  cursor
pageSize: (NSUInteger)  pageSize
option: (EMFetchServerMessagesOption *_Nullable)  option
completion: (void(^)(EMCursorResult< EMChatMessage * > *_Nullable result, EMError *_Nullable aError))  aCompletionBlock 
required

根据消息拉取参数配置接口(EMFetchServerMessagesOption)从服务器分页获取指定会话的历史消息。

参数
conversationId会话 ID。
  • 单聊:对端用户的用户 ID;
  • 群聊:群组 ID;
  • 聊天室:聊天室 ID。
type会话类型。
cursor查询的起始游标位置。
pageSize每页期望获取的消息条数。取值范围为 [1,50]。
option查询历史消息的参数配置接口,详见 EMFetchServerMessagesOption
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) fetchSupportedLanguages: (void(^)(NSArray< EMTranslateLanguage * > *_Nullable languages, EMError *_Nullable error))  aCompletionBlock
required

获取翻译服务支持的语言。

参数
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (NSArray<EMConversation *> * _Nullable) filterConversationsFromDB: (BOOL)  cleanMemoryCache
filter: (filterConversationsFromDB(cleanMemoryCache:filter:))  NS_SWIFT_NAME 
required

根据过滤器获取本地所有会话。

调用该接口时,SDK 会根据过滤条件从本地数据库获取会话。

v必须确保登录成功后调用。

参数
cleanMemoryCache是否清空内存缓存的会话。
filter过滤器。若该参数的返回值为 YES,表示会话会返回;NO,表示会话不返回。
返回
会话列表,NSArray<EMConversation *> * 类型。
- (NSArray<EMConversation *> * _Nullable) getAllConversations
required

获取本地所有会话。

该方法会先从内存中获取,如果未找到任何会话,从本地数据库获取。

返回
会话列表,NSArray<EMConversation *> * 类型。
- (NSArray<EMConversation *> * _Nullable) getAllConversations: (BOOL)  isSort
required

获取本地所有会话。

该方法会先从内存中获取,如果未找到任何会话,SDK 从本地数据库获取。

参数
isSort是否对会话排序。
  • YES: YES。SDK 按照最近一条消息的时间戳的倒序返回会话,置顶会话在前,非置顶会话在后。
  • NO: NO
返回
会话列表,NSArray<EMConversation *> * 类型。
- (EMConversation *_Nullable) getConversation: (NSString *_Nonnull)  aConversationId
type: (EMConversationType)  aType
createIfNotExist: (BOOL)  aIfCreate 
required

获取一个会话。

参数
aConversationId会话 ID。
aType会话类型。
aIfCreate若该会话不存在是否创建:
  • YES:是;
  • NO:否。
返回
会话对象。
- (EMConversation *_Nullable) getConversation: (NSString *_Nonnull)  aConversationId
type: (EMConversationType)  aType
createIfNotExist: (BOOL)  aIfCreate
isThread: (BOOL)  isThread 
required

获取一个会话。

参数
aConversationId会话 ID。
aType会话类型。
aIfCreate若该会话不存在是否创建。
  • YES:是;
  • NO:否。
isThread是否是子区会话,即是否为 threadChat 类型的会话。
  • YES: 是;
  • NO: 否。
返回
会话对象。
- (void) getConversationsFromServer: (4_0_0) 
("Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion")  EM_DEPRECATED_IOS 
required

从服务器获取所有会话。

参数
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) getConversationsFromServerByPage: (NSUInteger)  pageNumber
pageSize: (NSUInteger)  pageSize
completion: (4_0_0) 
("Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion")  EM_DEPRECATED_IOS 
required

从服务器分页获取会话。

参数
pageNumber当前页码,从 1 开始。
pageSize每页获取的的会话数。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) getConversationsFromServerWithCursor: (NSString *_Nullable)  cursor
filter: (EMConversationFilter *_Nonnull)  filter
completion: (nonnull void(^)(EMCursorResult< EMConversation * > *_Nullable result, EMError *_Nullable error))  completionBlock 
required

根据会话过滤类从服务器分页查询会话列表。

参数
cursor查询的开始位置。若传入 nil@"",SDK 从最新标记操作的会话开始获取。
filter查询选项,包括会话标记和每页获取的会话列表条数。
aCompletionBlock该方法完成的回调,返回会话列表和用于下一次获取数据的 cursor。当 cursor 为 空字符串时,表示已获取全部数据。
- (void) getConversationsFromServerWithCursor: (nullable NSString *)  cursor
pageSize: (UInt8)  pageSize
completion: (nonnull void(^)(EMCursorResult< EMConversation * > *_Nullable result, EMError *_Nullable error))  completionBlock 
required

分页从服务器获取获取会话列表。

SDK 按照会话活跃时间(会话的最后一条消息的时间戳)倒序返回会话列表。

若会话中没有消息,则 SDK 按照会话创建时间的倒序返回会话列表。

参数
cursor查询的开始位置。若传入 nil@"",SDK 从最新活跃的会话开始获取。
pageSize每页期望返回的会话数量。取值范围为 [1,50]。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (EMConversation *_Nullable) getConversationWithConvId: (NSString *_Nullable)  aConversationId
required

从本地数据库中获取一个已存在的会话。

参数
aConversationId会话 ID。
返回
会话对象。
- (NSString * _Nullable) getMessageAttachmentPath: (NSString *_Nonnull)  aConversationId
required

获取一个会话中消息附件的本地路径。

删除会话时,会话中的消息附件也会被删除。

参数
aConversationId会话 ID。
返回
附件路径。
- (EMChatMessage * _Nullable) getMessageWithMessageId: (NSString *_Nonnull)  aMessageId
required

获取指定的消息。

参数
aMessageId消息 ID。
返回
获取到的消息。
- (void) getPinnedConversationsFromServerWithCursor: (nullable NSString *)  cursor
pageSize: (UInt8)  limit
completion: (nonnull void(^)(EMCursorResult< EMConversation * > *_Nullable result, EMError *_Nullable error))  completionBlock 
required

分页从服务器获取置顶会话。

SDK 按照会话的置顶时间的倒序返回会话列表。

参数
cursor查询的开始位置。若传 nil@"",SDK 从最新置顶的会话开始查询。
pageSize每页期望返回的会话数量。取值范围为 [1,50]。
completionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) getPinnedMessagesFromServer: (NSString *_Nonnull)  conversationId
completion: (void(^)(NSArray< EMChatMessage * > *_Nullable messages, EMError *_Nullable aError))  aCompletionBlock 
required

获取会话内的置顶消息列表。

参数
conversationId会话 ID。
aCompletionBlock该方法完成的回调,返回置顶消息列表。如果该方法调用失败,会包含调用失败的原因。
- (void) getReactionDetail: (NSString *)  messageId
reaction: (NSString *)  reaction
cursor: (nullable NSString *)  cursor
pageSize: (uint64_t)  pageSize
completion: (void(^)(EMMessageReaction *, NSString *_Nullable cursor, EMError *_Nullable))  completion 
required

分页获取群聊消息的 Reaction 详细列表。

参数
messageId消息 ID。
reactionReaction 内容。
cursor查询的开始位置。首次调用该方法可传 nil@"" 以 Reaction 创建时间的正序获取。
pageSize每页期望返回的 Reaction 数量。取值范围为 [1,100]。
completion该方法完成的回调,返回 Reaction 列表和用于继续获取数据的 cursor。当 cursor 为 nil 时表示已获取全部数据。
- (void) getReactionList: (NSArray< NSString * > *)  messageIds
groupId: (nullable NSString *)  groupId
chatType: (EMChatType)  chatType
completion: (void(^)(NSDictionary< NSString *, NSArray< EMMessageReaction * > * > *, EMError *_Nullable))  completion 
required

获取消息的 Reaction 列表。

参数
messageId消息 ID。
groupId群组 ID,该参数只在群聊生效。
chatType会话类型,仅支持单聊(EMChatTypeChat)和群聊(EMChatTypeGroupChat)。
completion该方法完成的回调。如果有错误会包含错误信息。
- (void) importConversations: (NSArray< EMConversation * > *_Nullable)  aConversations
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

导入一组会话到本地数据库。

参数
aConversations会话列表。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) importMessages: (NSArray< EMChatMessage * > *_Nonnull)  aMessages
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

导入一组消息到本地数据库。

参数
aMessages消息列表。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (NSArray<EMChatMessage *> *) loadMessagesWithKeyword: (NSString *)  aKeywords
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *)  aSender
searchDirection: (EMMessageSearchDirection)  aDirection 
required

通过关键词从数据库获取消息。

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

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

参数
aKeywords搜索关键词。设为 nil 表示忽略该参数。
aTimestamp参考时间戳。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会获取一条消息。
aSender消息发送方。设为 nil 表示忽略该参数。
aDirection消息搜索方向,详见 MessageSearchDirection
  • UP:按消息时间戳的逆序获取。
  • DOWN:按消息时间戳的顺序获取。
返回
消息列表。返回的消息列表为数组类型,数组中元素详见 EMChatMessage
- (void) loadMessagesWithKeyword: (NSString *)  aKeywords
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *)  aSender
searchDirection: (EMMessageSearchDirection)  aDirection
completion: (void(^)(NSArray< EMChatMessage * > *aMessages, EMError *aError))  aCompletionBlock 
required

通过关键词从数据库获取消息。

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

参数
aKeywords搜索关键词,设为 nil 表示忽略该参数。
aTimestamp参考时间戳。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会获取一条消息。
aSender消息发送方。设为 nil 表示忽略该参数。
aDirection消息搜索方向,详见 EMMessageSearchDirection
  • UP:按消息时间戳的逆序获取。
  • DOWN:按消息时间戳的顺序获取。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) loadMessagesWithKeyword: (NSString *)  aKeywords
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *)  aSender
searchDirection: (EMMessageSearchDirection)  aDirection
scope: (EMMessageSearchScope)  aScope
completion: (void(^)(NSArray< EMChatMessage * > *aMessages, EMError *aError))  aCompletionBlock 
required

通过关键词从本地数据库中获取消息。

SDK 返回的消息按时间顺序排列。

参数
aKeywords搜索关键词,设为 nil 表示忽略该参数。
aTimestamp搜索开始的 Unix 时间戳。单位为毫秒。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会获取一条消息。
aSender消息发送方。设为 nil 表示忽略该参数。
aDirection消息搜索方向,详见 EMMessageSearchDirection
  • UP:按消息时间戳的逆序获取。
  • DOWN:按消息时间戳的顺序获取。
aScope消息搜索范围,详见 EMMessageSearchScope
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (NSArray<EMChatMessage *> * _Nullable) loadMessagesWithType: (EMMessageBodyType)  aType
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *_Nullable)  aUsername
searchDirection: (EMMessageSearchDirection)  aDirection 
required

通过关键词从数据库获取消息。

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

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

参数
aType消息类型。
aTimestamp参考时间戳。如果该参数设置的时间戳为负数,则从最新消息向前获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会获取一条消息。
aUsername消息发送方。设为 nil 表示忽略该参数。
aDirection消息搜索方向。详见 EMMessageSearchDirection
  • UP:按消息时间戳的逆序获取。
  • DOWN:按消息时间戳的顺序获取。
返回
消息列表。返回的消息列表为数组类型,数组中元素详见 EMChatMessage
- (void) loadMessagesWithType: (EMMessageBodyType)  aType
timestamp: (long long)  aTimestamp
count: (int)  aCount
fromUser: (NSString *)  aUsername
searchDirection: (EMMessageSearchDirection)  aDirection
completion: (void(^)(NSArray< EMChatMessage * > *aMessages, EMError *aError))  aCompletionBlock 
required

通过关键词从数据库获取消息。

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

参数
aType消息类型。
aTimestamp参考时间戳。如果该参数设置的时间戳为负数,则 SDK 从最新消息开始获取。
aCount获取的消息条数。如果设为小于等于 0,SDK 会获取一条消息。
aUsername消息发送方。设为 nil 表示忽略该参数。
aDirection消息搜索方向,详见 MessageSearchDirection
  • UP:按消息时间戳的逆序获取。
  • DOWN:按消息时间戳的顺序获取。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (EMError*) markAllConversationsAsRead
required

将所有会话都设成已读。

该方法仅适用于本地会话。

- (void) modifyMessage: (NSString *_Nonnull)  messageId
body: (EMMessageBody *_Nonnull)  body
completion: (void(^)(EMError *_Nullable error, EMChatMessage *_Nullable message))  completionBlock 
required

修改本地以及服务端的消息内容。

你只能调用该方法修改单聊和群聊中的文本消息,不能修改聊天室消息。

参数
messageId消息实例id。
body文本消息体实例(EMTextMessageBody)。
completionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。成功则error为空,message不为空
- (void) pinConversation: (nonnull NSString *)  conversationId
isPinned: (BOOL)  isPinned
completionBlock: (nullable void(^)(EMError *_Nullable error))  completionBlock 
required

设置是否置顶会话。

参数
conversationId会话 ID。
isPinned是否置顶会话:
  • YES:置顶;
  • NO:取消置顶。
callback设置是否置顶会话的结果回调。
- (void) pinMessage: (NSString *_Nonnull)  messageId
completion: (void(^)(EMChatMessage *_Nullable message, EMError *_Nullable aError))  aCompletionBlock 
required

置顶消息。

参数
messageId要置顶的消息 ID。
aCompletionBlock该方法完成的回调,返回消息对象。如果该方法调用失败,会包含调用失败的原因。
- (void) recallMessageWithMessageId: (NSString *_Nonnull)  aMessageId
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

撤回一条消息。

异步方法。

参数
aMessageId消息 ID。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) recallMessageWithMessageId: (NSString *_Nonnull)  aMessageId
ext: (NSString *_Nullable)  ext
completion: (void(^)(EMError *_Nullable))  aCompletionBlock 
required

撤回一条消息。

异步方法。

参数
aMessageId消息 ID。
ext撤回时传递的透传信息,支持字符串和 JSONString 类型。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) removeConversationMark: (NSArray< NSString * > *_Nonnull)  conversationIds
mark: (EMMarkType)  mark
completion: (void(^)(EMError *_Nullable aError))  completion 
required

取消标记会话。

调用该方法会同时取消本地和服务器端的会话标记。

参数
conversationIds会话 ID 列表。
mark要移除的会话标记。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) removeDelegate: (id< EMChatManagerDelegate > _Nonnull)  aDelegate
required

移除回调代理。

参数
aDelegate要移除的代理。
- (void) removeMessagesFromServerWithConversation: (EMConversation *_Nonnull)  conversation
messageIds: (NSArray< __kindof NSString * > *_Nonnull)  messageIds
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

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

参数
conversation会话对象 EMConversation
messageIds要删除消息 ID 字符串数组。
completion该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) removeMessagesFromServerWithConversation: (EMConversation *_Nonnull)  conversation
timeStamp: (NSTimeInterval)  beforeTimeStamp
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

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

参数
conversation会话对象 EMConversation。
beforeTimeStamp指定的时间戳,单位为毫秒。该时间戳之前的消息会被删除。
completion该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) removeReaction: (NSString *)  reaction
fromMessage: (NSString *)  messageId
completion: (nullable void(^)(EMError *_Nullable))  completion 
required

删除 Reaction。

参数
reactionReaction 内容。
messageId消息 ID。
completion该方法完成的回调。如果有错误会包含错误信息。
- (void) reportMessageWithId: (NSString *_Nonnull)  aMessageId
tag: (NSString *_Nonnull)  aTag
reason: (NSString *_Nonnull)  aReason
completion: (void(^)(EMError *_Nullable error))  aCompletion 
required

举报违规消息。

异步方法。

参数
aMessageId非法消息的 ID。
aTag非法消息的标签。你需要填写自定义标签,例如涉政广告。该字段对应控制台的消息举报记录页面的词条标记字段。
aReason举报原因。你需要自行填写举报原因。该字段对应控制台的消息举报记录页面的举报原因字段。
aCompletion该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) resendMessage: (EMChatMessage *_Nonnull)  aMessage
progress: (void(^)(int progress))  aProgressBlock
completion: (void(^)(EMChatMessage *_Nullable message, EMError *_Nullable error))  aCompletionBlock 
required

重新发送消息。

参数
aMessage消息对象。
aProgressBlock附件上传进度回调 block。进度值范围为 [0,100]。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) sendGroupMessageReadAck: (NSString *_Nonnull)  aMessageId
toGroup: (NSString *_Nonnull)  aGroupId
content: (NSString *_Nullable)  aContent
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

发送群消息已读回执。

异步方法。

参数
aMessageId消息 ID。
aGroupId群组 ID。
aContent消息内容。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) sendMessage: (EMChatMessage *_Nonnull)  aMessage
progress: (void(^)(int progress))  aProgressBlock
completion: (void(^)(EMChatMessage *_Nullable message, EMError *_Nullable error))  aCompletionBlock 
required

发送消息。

异步方法。

参数
aMessage消息。
aProgressBlock附件上传进度回调 block。进度值范围为 [0,100]。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) sendMessageReadAck: (NSString *_Nonnull)  aMessageId
toUser: (NSString *_Nonnull)  aUsername
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

发送消息已读回执。

异步方法。

参数
aMessage消息 ID。
aUsername已读回执的接收方。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) translateMessage: (EMChatMessage *_Nonnull)  aMessage
targetLanguages: (NSArray< NSString * > *_Nonnull)  aLanguages
completion: (void(^)(EMChatMessage *_Nullable message, EMError *_Nullable error))  aCompletionBlock 
required

翻译消息。

参数
aMessage消息对象。
aLanguages目标语言代码列表。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。
- (void) unpinMessage: (NSString *_Nonnull)  messageId
completion: (void(^)(EMChatMessage *_Nullable message, EMError *_Nullable aError))  aCompletionBlock 
required

取消置顶消息。

参数
messageId要取消置顶的消息 ID。
aCompletionBlock该方法完成的回调,返回消息对象。如果该方法调用失败,会包含调用失败的原因。
- (void) updateMessage: (EMChatMessage *_Nonnull)  aMessage
completion: (void(^)(EMChatMessage *_Nullable aMessage, EMError *_Nullable aError))  aCompletionBlock 
required

更新消息到本地数据库。

该方法会同时更新本地内存和数据库中的消息,消息 ID 不会更新。

参数
aMessage消息。
aCompletionBlock该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。

该协议的文档由以下文件生成: