#import <IEMChatManager.h>
聊天相关操作代理协议。
消息都是从本地数据库中加载,不是从服务端加载。
◆ ackConversationRead:completion:
- (void) ackConversationRead: |
|
(NSString *_Nonnull) |
conversationId |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
发送会话已读回执。
该方法仅适用于单聊会话。
发送会话已读回执会通知服务器将指定的会话未读消息数置为 0。调用该方法后对方会收到 onConversationRead 回调。
对话方(包含多端多设备)将会在回调方法 EMChatManagerDelegate onConversationRead(String, String) 中接收到回调。
为了减少调用次数,我们建议在进入聊天页面有大量未读消息时调用该方法,在聊天过程中调用 sendMessageReadAck
方法发送消息已读回执。
异步方法。
- 参数
-
conversationId | 会话 ID。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ addConversationMark:mark:completion:
- (void) addConversationMark: |
|
(NSArray< NSString * > *_Nonnull) |
conversationIds |
mark: |
|
(EMMarkType) |
mark |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
completion |
|
|
| |
|
required |
标记会话。
调用该方法会同时为本地和服务器端的会话添加标记。
- 参数
-
conversationIds | 会话 ID 列表。 |
mark | 要添加的会话标记。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ addDelegate:delegateQueue:
- (void) addDelegate: |
|
(id< EMChatManagerDelegate > _Nullable) |
aDelegate |
delegateQueue: |
|
(dispatch_queue_t _Nullable) |
aQueue |
|
|
| |
|
required |
添加回调代理。
- 参数
-
aDelegate | 实现代理协议的对象。 |
aQueue | 执行代理方法的队列。若在主线程上运行 app,将该参数设置为空。 |
◆ addReaction:toMessage:completion:
- (void) addReaction: |
|
(NSString *) |
reaction |
toMessage: |
|
(NSString *) |
messageId |
completion: |
|
(nullable void(^)(EMError *_Nullable)) |
completion |
|
|
| |
|
required |
添加 Reaction。
- 参数
-
reaction | Reaction 内容。 |
messageId | 消息 ID。 |
completion | 该方法完成的回调。如果有错误会包含错误信息。 |
◆ asyncFetchGroupMessageAcksFromServer:groupId:startGroupAckId:pageSize: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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ asyncFetchHistoryMessagesFromServer:conversationType:startMessageId:fetchDirection:pageSize:completion:
- (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 | 该方法完成调用的回调。 |
◆ asyncFetchHistoryMessagesFromServer:conversationType:startMessageId:pageSize:completion:
从服务器获取指定会话的消息。
异步方法。
- 参数
-
aConversationId | 会话 ID。 |
aConversationType | 会话类型。 |
aStartMessageId | 查询的起始消息 ID。 |
aPageSize | 每页期望获取的消息条数。 |
aCompletionBlock | 该方法完成调用的回调。 |
◆ cleanConversationsMemoryCache
- (void) cleanConversationsMemoryCache |
|
|
|
|
required |
◆ deleteAllMessagesAndConversations:completion:
- (void) deleteAllMessagesAndConversations: |
|
(BOOL) |
clearServerData |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
清空所有会话及其消息。
异步方法。
- 参数
-
clearSeverData | 是否删除服务端所有会话及其消息:
- YES:是。服务端的所有会话及其消息会被清除,当前用户无法再从服务端拉取消息和会话,其他用户不受影响。
- (默认)NO:否。只清除本地所有会话及其消息,服务端的会话及其消息仍保留。
|
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ deleteConversation:isDeleteMessages:completion:
- (void) deleteConversation: |
|
(NSString *_Nonnull) |
aConversationId |
isDeleteMessages: |
|
(BOOL) |
aIsDeleteMessages |
completion: |
|
(void(^)(NSString *_Nullable aConversationId, EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
从本地数据库中删除一个会话。
- 参数
-
aConversationId | 会话 ID。 |
aIsDeleteMessages | 是否删除会话中的消息。
|
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ deleteConversations:isDeleteMessages:completion:
- (void) deleteConversations: |
|
(NSArray< EMConversation * > *_Nullable) |
aConversations |
isDeleteMessages: |
|
(BOOL) |
aIsDeleteMessages |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
删除一组会话。
- 参数
-
aConversations | 会话列表。 |
aIsDeleteMessages | 是否删除会话中的消息。
|
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ deleteMessagesBefore:completion:
- (void) deleteMessagesBefore: |
|
(NSUInteger) |
aTimestamp |
completion: |
|
(void(^)(EMError *error)) |
aCompletion |
|
|
| |
|
required |
删除指定时间戳之前的本地历史消息。在设置EMOptions
中autoLoadConversations
属性为 false
后,会导致被过滤的会话拉消息未读数不准确。
异步方法。
- 参数
-
aTimestamp | 指定的消息时间戳,单位为毫秒。时间戳之前的本地消息会被删除。 |
aCompletion | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ deleteServerConversation:conversationType:isDeleteServerMessages:completion:
- (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 | 是否同时删除会话中的消息。
|
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ downloadAndParseCombineMessage:completion:
- (void) downloadAndParseCombineMessage: |
|
(EMChatMessage *_Nonnull) |
aMessage |
completion: |
|
(void(^)(NSArray< EMChatMessage * > *_Nullable messages, EMError *_Nullable error)) |
aCompletionBlock |
|
|
| |
|
required |
下载并解析合并消息中的附件。
异步方法。
- 参数
-
aMessage | 合并消息对象。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ downloadMessageAttachment:progress:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ downloadMessageThumbnail:progress:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ fetchHistoryMessagesFromServer:conversationType:startMessageId:fetchDirection:pageSize:error:
从服务器获取指定会话的消息。
- 参数
-
aConversationId | 会话 ID。 |
aConversationType | 会话类型。 |
aStartMessageId | 查询的起始消息 ID。若该参数为空,SDK 从最新一条消息开始获取。 |
direction | 消息搜索方向。详见 EMMessageFetchHistoryDirection 。 |
aPageSize | 每页期望获取的消息条数。 |
pError | 错误信息。 |
- 返回
- 获取的消息内容列表。
◆ fetchHistoryMessagesFromServer:conversationType:startMessageId:pageSize:error:
从服务器获取指定会话的消息。
- 参数
-
aConversationId | 会话 ID。 |
aConversationType | 会话类型。 |
aStartMessageId | 查询的起始消息 ID。若该参数为空,SDK 从最新一条消息开始获取。 |
aPageSize | 每页期望获取的消息条数。 |
pError | 错误信息。 |
- 返回
- 获取的消息内容列表。
◆ fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ fetchSupportedLanguages:
- (void) fetchSupportedLanguages: |
|
(void(^)(NSArray< EMTranslateLanguage * > *_Nullable languages, EMError *_Nullable error)) |
aCompletionBlock |
|
|
required |
获取翻译服务支持的语言。
- 参数
-
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ filterConversationsFromDB:filter:
- (NSArray< EMConversation * > *_Nullable) filterConversationsFromDB: |
|
(BOOL) |
cleanMemoryCache |
filter: |
|
(filterConversationsFromDB(cleanMemoryCache:filter:)) |
NS_SWIFT_NAME |
|
|
| |
|
required |
根据过滤器获取本地所有会话。
调用该接口时,SDK 会根据过滤条件从本地数据库获取会话。
v必须确保登录成功后调用。
- 参数
-
cleanMemoryCache | 是否清空内存缓存的会话。 |
filter | 过滤器。若该参数的返回值为 YES ,表示会话会返回;NO ,表示会话不返回。 |
- 返回
- 会话列表,NSArray<EMConversation *> * 类型。
◆ getAllConversations
获取本地所有会话。
该方法会先从内存中获取,如果未找到任何会话,从本地数据库获取。
- 返回
- 会话列表,NSArray<EMConversation *> * 类型。
◆ getAllConversations:
- (NSArray< EMConversation * > *_Nullable) getAllConversations: |
|
(BOOL) |
isSort |
|
|
required |
获取本地所有会话。
该方法会先从内存中获取,如果未找到任何会话,SDK 从本地数据库获取。
- 参数
-
isSort | 是否对会话排序。
- YES: YES。SDK 按照最近一条消息的时间戳的倒序返回会话,置顶会话在前,非置顶会话在后。
- NO: NO
|
- 返回
- 会话列表,NSArray<EMConversation *> * 类型。
◆ getConversation:type:createIfNotExist:
- (EMConversation *_Nullable) getConversation: |
|
(NSString *_Nonnull) |
aConversationId |
type: |
|
(EMConversationType) |
aType |
createIfNotExist: |
|
(BOOL) |
aIfCreate |
|
|
| |
|
required |
获取一个会话。
- 参数
-
aConversationId | 会话 ID。 |
aType | 会话类型。 |
aIfCreate | 若该会话不存在是否创建:
|
- 返回
- 会话对象。
◆ getConversation:type:createIfNotExist:isThread:
- (EMConversation *_Nullable) getConversation: |
|
(NSString *_Nonnull) |
aConversationId |
type: |
|
(EMConversationType) |
aType |
createIfNotExist: |
|
(BOOL) |
aIfCreate |
isThread: |
|
(BOOL) |
isThread |
|
|
| |
|
required |
获取一个会话。
- 参数
-
aConversationId | 会话 ID。 |
aType | 会话类型。 |
aIfCreate | 若该会话不存在是否创建。
|
isThread | 是否是子区会话,即是否为 threadChat 类型的会话。
|
- 返回
- 会话对象。
◆ getConversationsFromServer:
- (void) getConversationsFromServer: |
|
(4_0_0) |
|
|
|
("Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion") |
EM_DEPRECATED_IOS |
|
|
| |
|
required |
从服务器获取所有会话。
- 参数
-
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ getConversationsFromServerByPage:pageSize:completion:
- (void) getConversationsFromServerByPage: |
|
(NSUInteger) |
pageNumber |
pageSize: |
|
(NSUInteger) |
pageSize |
completion: |
|
(4_0_0) |
|
|
|
("Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion") |
EM_DEPRECATED_IOS |
|
|
| |
|
required |
从服务器分页获取会话。
- 参数
-
pageNumber | 当前页码,从 1 开始。 |
pageSize | 每页获取的的会话数。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ getConversationsFromServerWithCursor:filter:completion:
根据会话过滤类从服务器分页查询会话列表。
- 参数
-
cursor | 查询的开始位置。若传入 nil 或 @"" ,SDK 从最新标记操作的会话开始获取。 |
filter | 查询选项,包括会话标记和每页获取的会话列表条数。 |
aCompletionBlock | 该方法完成的回调,返回会话列表和用于下一次获取数据的 cursor。当 cursor 为 空字符串时,表示已获取全部数据。 |
◆ getConversationsFromServerWithCursor:pageSize:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ getConversationWithConvId:
- (EMConversation *_Nullable) getConversationWithConvId: |
|
(NSString *_Nullable) |
aConversationId |
|
|
required |
从本地数据库中获取一个已存在的会话。
- 参数
-
- 返回
- 会话对象。
◆ getMessageAttachmentPath:
- (NSString *_Nullable) getMessageAttachmentPath: |
|
(NSString *_Nonnull) |
aConversationId |
|
|
required |
获取一个会话中消息附件的本地路径。
删除会话时,会话中的消息附件也会被删除。
- 参数
-
- 返回
- 附件路径。
◆ getMessageCountWithCompletion:
- (void) getMessageCountWithCompletion: |
|
(void(^)(NSInteger count, EMError *_Nullable aError)) |
completion |
|
|
required |
获取数据库中的消息总数。
- 参数
-
completion | 获取数据库中消息总数的回调,包含消息总数和失败原因。 |
◆ getMessageWithMessageId:
- (EMChatMessage *_Nullable) getMessageWithMessageId: |
|
(NSString *_Nonnull) |
aMessageId |
|
|
required |
◆ getPinnedConversationsFromServerWithCursor:pageSize:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ getPinnedMessagesFromServer:completion:
- (void) getPinnedMessagesFromServer: |
|
(NSString *_Nonnull) |
conversationId |
completion: |
|
(void(^)(NSArray< EMChatMessage * > *_Nullable messages, EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
获取会话内的置顶消息列表。
- 参数
-
conversationId | 会话 ID。 |
aCompletionBlock | 该方法完成的回调,返回置顶消息列表。如果该方法调用失败,会包含调用失败的原因。 |
◆ getReactionDetail:reaction:cursor:pageSize:completion:
- (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。 |
reaction | Reaction 内容。 |
cursor | 查询的开始位置。首次调用该方法可传 nil 或 @"" 以 Reaction 创建时间的正序获取。 |
pageSize | 每页期望返回的 Reaction 数量。取值范围为 [1,100]。 |
completion | 该方法完成的回调,返回 Reaction 列表和用于继续获取数据的 cursor。当 cursor 为 nil 时表示已获取全部数据。 |
◆ getReactionList:groupId:chatType:completion:
- (void) getReactionList: |
|
(NSArray< NSString * > *) |
messageIds |
groupId: |
|
(nullable NSString *) |
groupId |
chatType: |
|
(EMChatType) |
chatType |
completion: |
|
(void(^)(NSDictionary< NSString *, NSArray< EMMessageReaction * > * > *, EMError *_Nullable)) |
completion |
|
|
| |
|
required |
◆ importConversations:completion:
- (void) importConversations: |
|
(NSArray< EMConversation * > *_Nullable) |
aConversations |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
导入一组会话到本地数据库。
- 参数
-
aConversations | 会话列表。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ importMessages:completion:
- (void) importMessages: |
|
(NSArray< EMChatMessage * > *_Nonnull) |
aMessages |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
导入一组消息到本地数据库。
- 参数
-
aMessages | 消息列表。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:
- (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
。
◆ loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ loadMessagesWithKeyword:timestamp:count:fromUser:searchDirection:scope:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ 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 |
|
|
| |
|
required |
通过关键词从数据库获取消息。
该方法返回的消息按时间顺序排列。
同步方法,会阻塞当前线程。
- 参数
-
aType | 消息类型。 |
aTimestamp | 参考时间戳。如果该参数设置的时间戳为负数,则从最新消息向前获取。 |
aCount | 获取的消息条数。如果设为小于等于 0,SDK 会获取一条消息。 |
aUsername | 消息发送方。设为 nil 表示忽略该参数。 |
aDirection | 消息搜索方向。详见 EMMessageSearchDirection 。
UP :按消息时间戳的逆序获取。
DOWN :按消息时间戳的顺序获取。
|
- 返回
- 消息列表。返回的消息列表为数组类型,数组中元素详见
EMChatMessage
。
◆ loadMessagesWithType:timestamp:count:fromUser:searchDirection:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ markAllConversationsAsRead
- (EMError *) markAllConversationsAsRead |
|
|
|
|
required |
◆ modifyMessage:body:completion:
- (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不为空 |
◆ pinConversation:isPinned:completionBlock:
- (void) pinConversation: |
|
(nonnull NSString *) |
conversationId |
isPinned: |
|
(BOOL) |
isPinned |
completionBlock: |
|
(nullable void(^)(EMError *_Nullable error)) |
completionBlock |
|
|
| |
|
required |
设置是否置顶会话。
- 参数
-
conversationId | 会话 ID。 |
isPinned | 是否置顶会话:
|
callback | 设置是否置顶会话的结果回调。 |
◆ pinMessage:completion:
- (void) pinMessage: |
|
(NSString *_Nonnull) |
messageId |
completion: |
|
(void(^)(EMChatMessage *_Nullable message, EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
置顶消息。
- 参数
-
messageId | 要置顶的消息 ID。 |
aCompletionBlock | 该方法完成的回调,返回消息对象。如果该方法调用失败,会包含调用失败的原因。 |
◆ recallMessageWithMessageId:completion:
- (void) recallMessageWithMessageId: |
|
(NSString *_Nonnull) |
aMessageId |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
撤回一条消息。
异步方法。
- 参数
-
aMessageId | 消息 ID。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ recallMessageWithMessageId:ext:completion:
- (void) recallMessageWithMessageId: |
|
(NSString *_Nonnull) |
aMessageId |
ext: |
|
(NSString *_Nullable) |
ext |
completion: |
|
(void(^)(EMError *_Nullable)) |
aCompletionBlock |
|
|
| |
|
required |
撤回一条消息。
异步方法。
- 参数
-
aMessageId | 消息 ID。 |
ext | 撤回时传递的透传信息,支持字符串和 JSONString 类型。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ removeConversationMark:mark:completion:
- (void) removeConversationMark: |
|
(NSArray< NSString * > *_Nonnull) |
conversationIds |
mark: |
|
(EMMarkType) |
mark |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
completion |
|
|
| |
|
required |
取消标记会话。
调用该方法会同时取消本地和服务器端的会话标记。
- 参数
-
conversationIds | 会话 ID 列表。 |
mark | 要移除的会话标记。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ removeDelegate:
◆ removeMessagesFromServerWithConversation:messageIds:completion:
- (void) removeMessagesFromServerWithConversation: |
|
(EMConversation *_Nonnull) |
conversation |
messageIds: |
|
(NSArray< __kindof NSString * > *_Nonnull) |
messageIds |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
从会话中删除消息(包括本地存储和服务器存储)。
- 参数
-
conversation | 会话对象 EMConversation |
messageIds | 要删除消息 ID 字符串数组。 |
completion | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ removeMessagesFromServerWithConversation:timeStamp:completion:
- (void) removeMessagesFromServerWithConversation: |
|
(EMConversation *_Nonnull) |
conversation |
timeStamp: |
|
(NSTimeInterval) |
beforeTimeStamp |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
从会话中删除消息(包括本地存储和服务器)。
- 参数
-
conversation | 会话对象 EMConversation。 |
beforeTimeStamp | 指定的时间戳,单位为毫秒。该时间戳之前的消息会被删除。 |
completion | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ removeReaction:fromMessage:completion:
- (void) removeReaction: |
|
(NSString *) |
reaction |
fromMessage: |
|
(NSString *) |
messageId |
completion: |
|
(nullable void(^)(EMError *_Nullable)) |
completion |
|
|
| |
|
required |
删除 Reaction。
- 参数
-
reaction | Reaction 内容。 |
messageId | 消息 ID。 |
completion | 该方法完成的回调。如果有错误会包含错误信息。 |
◆ reportMessageWithId:tag:reason: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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ resendMessage:progress:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ searchMessagesWithTypes:timestamp:count:fromUser:searchDirection:completion:
- (void) searchMessagesWithTypes: |
|
(NSArray< NSNumber * > *_Nonnull) |
aTypes |
timestamp: |
|
(long long) |
aTimestamp |
count: |
|
(int) |
aCount |
fromUser: |
|
(NSString *_Nullable) |
aUsername |
searchDirection: |
|
(EMMessageSearchDirection) |
aDirection |
completion: |
|
(void(^)(NSArray< EMChatMessage * > *_Nullable aMessages, EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
通过关键词从数据库获取消息。
该方法返回的消息按时间顺序排列。
- 参数
-
aTypes | 消息类型枚举原始值用NSNumber包装后的数组,txt:文本消息,img:图片消息,loc:位置消息,audio:语音消息,video:视频消息,file:文件消息,cmd: 透传消息。EMMessageBodyType . |
aTimestamp | 参考时间戳。如果该参数设置的时间戳为负数,则 SDK 从最新消息开始获取。 |
aCount | 获取的消息条数。如果设为小于等于 0,SDK 会获取一条消息。 |
aUsername | 消息发送方。设为 nil 表示忽略该参数。 |
aDirection | 消息搜索方向,详见 MessageSearchDirection 。
UP :按消息时间戳的逆序获取。
DOWN :按消息时间戳的顺序获取。
|
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ sendGroupMessageReadAck:toGroup:content:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ sendMessage:progress:completion:
- (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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ sendMessageReadAck:toUser:completion:
- (void) sendMessageReadAck: |
|
(NSString *_Nonnull) |
aMessageId |
toUser: |
|
(NSString *_Nonnull) |
aUsername |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
发送消息已读回执。
异步方法。
- 参数
-
aMessage | 消息 ID。 |
aUsername | 已读回执的接收方。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ translateMessage:targetLanguages:completion:
- (void) translateMessage: |
|
(EMChatMessage *_Nonnull) |
aMessage |
targetLanguages: |
|
(NSArray< NSString * > *_Nonnull) |
aLanguages |
completion: |
|
(void(^)(EMChatMessage *_Nullable message, EMError *_Nullable error)) |
aCompletionBlock |
|
|
| |
|
required |
翻译消息。
- 参数
-
aMessage | 消息对象。 |
aLanguages | 目标语言代码列表。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ unpinMessage:completion:
- (void) unpinMessage: |
|
(NSString *_Nonnull) |
messageId |
completion: |
|
(void(^)(EMChatMessage *_Nullable message, EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
取消置顶消息。
- 参数
-
messageId | 要取消置顶的消息 ID。 |
aCompletionBlock | 该方法完成的回调,返回消息对象。如果该方法调用失败,会包含调用失败的原因。 |
◆ updateMessage:completion:
更新消息到本地数据库。
该方法会同时更新本地内存和数据库中的消息,消息 ID 不会更新。
- 参数
-
aMessage | 消息。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
该协议的文档由以下文件生成: