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

#import <IEMChatManager.h>

类 <IEMChatManager> 继承关系图:

构造函数

(void) - addDelegate:delegateQueue:
 
(void) - removeDelegate:
 
(NSArray< EMConversation * > *_Nullable) - getAllConversations
 
(void) - getConversationsFromServerWithCursor:pageSize:completion:
 
(void) - getPinnedConversationsFromServerWithCursor:pageSize:completion:
 
(void) - pinConversation:isPinned:completionBlock:
 
(EMConversation *_Nullable) - getConversationWithConvId:
 
(EMConversation *_Nullable) - getConversation:type:createIfNotExist:
 
(void) - deleteConversation:isDeleteMessages:completion:
 
(void) - deleteServerConversation:conversationType:isDeleteServerMessages:completion:
 
(EMChatMessage *_Nullable) - getMessageWithMessageId:
 
(void) - sendMessageReadAck:toUser:completion:
 
(void) - ackConversationRead:completion:
 
(void) - recallMessageWithMessageId:completion:
 
(void) - sendMessage:progress:completion:
 
(void) - downloadMessageThumbnail:progress:completion:
 
(void) - downloadMessageAttachment:progress:completion:
 
(void) - removeMessagesFromServerWithConversation:timeStamp:completion:
 
(void) - fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion:
 

详细描述

聊天相关操作代理协议。

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

函数文档

◆ 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是否删除会话中的消息。
  • YES: 是;
  • NO: 否。
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是否同时删除会话中的消息。
  • YES: 是;
  • NO: 否。
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 * > *_Nullable) getAllConversations
required

获取本地所有会话。

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

返回
会话列表,NSArray<EMConversation *> * 类型。

◆ getConversation:type:createIfNotExist:

- (EMConversation *_Nullable) getConversation: (NSString *_Nonnull)  aConversationId
type: (EMConversationType)  aType
createIfNotExist: (BOOL)  aIfCreate 
required

获取一个会话。

参数
aConversationId会话 ID。
aType会话类型。
aIfCreate若该会话不存在是否创建:
  • YES:是;
  • NO:否。
返回
会话对象。

◆ 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

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

参数
aConversationId会话 ID。
返回
会话对象。

◆ getMessageWithMessageId:

- (EMChatMessage *_Nullable) getMessageWithMessageId: (NSString *_Nonnull)  aMessageId
required

获取指定的消息。

参数
aMessageId消息 ID。
返回
获取到的消息。

◆ 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是否置顶会话:
  • YES:置顶;
  • NO:取消置顶。
callback设置是否置顶会话的结果回调。

◆ recallMessageWithMessageId:completion:

- (void) recallMessageWithMessageId: (NSString *_Nonnull)  aMessageId
completion: (void(^)(EMError *_Nullable aError))  aCompletionBlock 
required

撤回一条消息。

异步方法。

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

◆ removeDelegate:

- (void) removeDelegate: (id< EMChatManagerDelegate > _Nonnull)  aDelegate
required

移除回调代理。

参数
aDelegate要移除的代理。

◆ 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该方法完成调用的回调。如果该方法调用失败,会包含调用失败的原因。

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