#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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ addDelegate:delegateQueue:
- (void) addDelegate: |
|
(id< EMChatManagerDelegate > _Nullable) |
aDelegate |
delegateQueue: |
|
(dispatch_queue_t _Nullable) |
aQueue |
|
|
| |
|
required |
添加回调代理。
- 参数
-
aDelegate | 实现代理协议的对象。 |
aQueue | 执行代理方法的队列。若在主线程上运行 app,将该参数设置为空。 |
◆ 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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ 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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ 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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ 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。 |
type | 会话类型,只支持单聊(EMConversationTypeChat )和群组(EMConversationTypeGroupChat )。 |
cursor | 查询的起始游标位置。 |
pageSize | 每页期望获取的消息条数。取值范围为 [1,50]。 |
option | 查询历史消息的参数配置接口,详见 EMFetchServerMessagesOption 。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ getAllConversations
获取本地所有会话。
该方法会先从内存中获取,如果未找到任何会话,从本地数据库获取。
- 返回
- 会话列表,NSArray<EMConversation *> * 类型。
◆ getConversation:type:createIfNotExist:
- (EMConversation *_Nullable) getConversation: |
|
(NSString *_Nonnull) |
aConversationId |
type: |
|
(EMConversationType) |
aType |
createIfNotExist: |
|
(BOOL) |
aIfCreate |
|
|
| |
|
required |
获取一个会话。
- 参数
-
aConversationId | 会话 ID。 |
aType | 会话类型。 |
aIfCreate | 若该会话不存在是否创建:
|
- 返回
- 会话对象。
◆ 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 |
从本地数据库中获取一个已存在的会话。
- 参数
-
- 返回
- 会话对象。
◆ 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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ pinConversation:isPinned:completionBlock:
- (void) pinConversation: |
|
(nonnull NSString *) |
conversationId |
isPinned: |
|
(BOOL) |
isPinned |
completionBlock: |
|
(nullable void(^)(EMError *_Nullable error)) |
completionBlock |
|
|
| |
|
required |
设置是否置顶会话。
- 参数
-
conversationId | 会话 ID。 |
isPinned | 是否置顶会话:
|
callback | 设置是否置顶会话的结果回调。 |
◆ recallMessageWithMessageId:completion:
- (void) recallMessageWithMessageId: |
|
(NSString *_Nonnull) |
aMessageId |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
撤回一条消息。
异步方法。
- 参数
-
aMessageId | 消息 ID。 |
aCompletionBlock | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ removeDelegate:
◆ removeMessagesFromServerWithConversation:timeStamp:completion:
- (void) removeMessagesFromServerWithConversation: |
|
(EMConversation *_Nonnull) |
conversation |
timeStamp: |
|
(NSTimeInterval) |
beforeTimeStamp |
completion: |
|
(void(^)(EMError *_Nullable aError)) |
aCompletionBlock |
|
|
| |
|
required |
从会话中删除消息(包括本地存储和服务器)。
- 参数
-
conversation | 会话对象 EMConversation。 |
beforeTimeStamp | 指定的时间戳,单位为毫秒。该时间戳之前的消息会被删除。 |
completion | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
◆ 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 | 该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。 |
该协议的文档由以下文件生成: