EMChatManagerChatDelegate

Extends Protocol:
Declared In:

Introduction

本协议包括:发送消息时的回调、接收到消息时的回调等其它操作



Methods

-didFetchingMessageAttachments:progress:

SDK接收到消息时, 下载附件的进度回调, 回调方法有不在主线程中调用, 需要App自己切换到主线程中执行UI的刷新等操作

-didFinishedReceiveOfflineCmdMessages

离线透传消息接收完成的回调

-didFinishedReceiveOfflineCmdMessages:

离线透传消息接收完成的回调

-didFinishedReceiveOfflineMessages

离线非透传消息接收完成的回调

-didFinishedReceiveOfflineMessages:

离线非透传消息接收完成的回调

-didMessageAttachmentsStatusChanged:error:

SDK接收到消息时, 下载附件成功或失败的回调

-didReceiveCmdMessage:

收到消息时的回调

-didReceiveHasDeliveredResponse:

收到"已送达回执"时的回调方法

-didReceiveHasReadResponse:

收到"已读回执"时的回调方法

-didReceiveMessage:

收到消息时的回调

-didReceiveMessageId:chatter:error:

收到发送消错误的回调

-didReceiveOfflineCmdMessages:

接收到离线透传消息的回调

-didReceiveOfflineMessages:

接收到离线非透传消息的回调

-didSendMessage:error:

发送消息后的回调

-didUnreadMessagesCountChanged

未读消息数改变时的回调

-didUpdateConversationList:

会话列表信息更新时的回调

-willReceiveOfflineMessages

将要接收离线消息的回调

-willSendMessage:error:

将要发送消息时的回调


didFetchingMessageAttachments:progress:


SDK接收到消息时, 下载附件的进度回调, 回调方法有不在主线程中调用, 需要App自己切换到主线程中执行UI的刷新等操作

@optional

- (void)didFetchingMessageAttachments:(EMMessage *)message progress:(float)progress;
Parameters
message

正在下载的消息对象

progress

下载进度

Discussion

SDK接收到消息时, 有以下两种情况:

  1. 如果是带缩略图的消息时(图片或Video), 会自动下载缩略图, 下载完成后, 会调用 didMessageAttachmentsStatusChanged:error这个回调

  2. 如果是语音消息时, 会自动下载语音附件, 会调用 didMessageAttachmentsStatusChanged:error这个回调


didFinishedReceiveOfflineCmdMessages


离线透传消息接收完成的回调

@optional

- (void)didFinishedReceiveOfflineCmdMessages;
Parameters
offlineCmdMessages

接收到的离线透传消息列表


didFinishedReceiveOfflineCmdMessages:


离线透传消息接收完成的回调

@optional

- (void)didFinishedReceiveOfflineCmdMessages:(NSArray *)offlineCmdMessages EM_DEPRECATED_IOS(2_1_5,2_1_8,"使用didFinishedReceiveOfflineCmdMessages标识离线消息结束,离线CMD全部通过didReceiveOfflineCmdMessages返回");
Parameters
offlineCmdMessages

接收到的离线透传消息列表


didFinishedReceiveOfflineMessages


离线非透传消息接收完成的回调

@optional

- (void)didFinishedReceiveOfflineMessages;
Parameters
offlineMessages

接收到的离线列表


didFinishedReceiveOfflineMessages:


离线非透传消息接收完成的回调

@optional

- (void)didFinishedReceiveOfflineMessages:(NSArray *)offlineMessages EM_DEPRECATED_IOS(2_1_5,2_1_8,"使用didFinishedReceiveOfflineMessages标识离线消息结束,离线消息全部通过didReceiveOfflineMessages返回");
Parameters
offlineMessages

接收到的离线列表


didMessageAttachmentsStatusChanged:error:


SDK接收到消息时, 下载附件成功或失败的回调

@optional

- (void)didMessageAttachmentsStatusChanged:(EMMessage *)message error:(EMError *)error;
Parameters
message

下载完成的消息对象

error

若附件下载成功, error为nil, 若下载失败, 则会返回相应的error信息

Discussion

SDK接收到消息时, 有以下两种情况:

  1. 如果是带缩略图的消息时(图片或Video), 会自动下载缩略图,

  2. 如果是语音消息时, 会自动下载语音附件,


didReceiveCmdMessage:


收到消息时的回调

@optional

- (void)didReceiveCmdMessage:(EMMessage *)cmdMessage;
Parameters
cmdMessage

消息对象

Discussion

当EMConversation对象的enableReceiveMessage属性为YES时, 会触发此回调 针对有附件的消息, 此时附件还未被下载. 附件下载过程中的进度回调请参考didFetchingMessageAttachments:progress:, 下载完所有附件后, 回调didMessageAttachmentsStatusChanged:error:会被触发


didReceiveHasDeliveredResponse:


收到"已送达回执"时的回调方法

@optional

- (void)didReceiveHasDeliveredResponse:(EMReceipt *)resp;
Parameters
resp

收到的"已送达回执"对象, 包括 from, to, chatId等

Discussion

发送方收到接收方发送的一个收到消息的回执, 但不意味着接收方已阅读了该消息


didReceiveHasReadResponse:


收到"已读回执"时的回调方法

@optional

- (void)didReceiveHasReadResponse:(EMReceipt *)resp;
Parameters
resp

收到的"已读回执"对象, 包括 from, to, chatId等

Discussion

发送方收到接收方发送的一个收到消息的回执, 意味着接收方已阅读了该消息


didReceiveMessage:


收到消息时的回调

@optional

- (void)didReceiveMessage:(EMMessage *)message;
Parameters
message

消息对象

Discussion

当EMConversation对象的enableReceiveMessage属性为YES时, 会触发此回调 针对有附件的消息, 此时附件还未被下载. 附件下载过程中的进度回调请参考didFetchingMessageAttachments:progress:, 下载完所有附件后, 回调didMessageAttachmentsStatusChanged:error:会被触发


didReceiveMessageId:chatter:error:


收到发送消错误的回调

@optional

- (void)didReceiveMessageId:(NSString *)messageId chatter:(NSString *)conversationChatter error:(EMError *)error;
Parameters
messageId

消息Id

conversationChatter

会话的username/groupId

error

错误信息


didReceiveOfflineCmdMessages:


接收到离线透传消息的回调

@optional

- (void)didReceiveOfflineCmdMessages:(NSArray *)offlineCmdMessages;
Parameters
offlineCmdMessages

接收到的离线透传消息列表


didReceiveOfflineMessages:


接收到离线非透传消息的回调

@optional

- (void)didReceiveOfflineMessages:(NSArray *)offlineMessages;
Parameters
offlineMessages

接收到的离线列表


didSendMessage:error:


发送消息后的回调

@optional

- (void)didSendMessage:(EMMessage *)message error:(EMError *)error;
Parameters
message

已发送的消息对象

error

错误信息


didUnreadMessagesCountChanged


未读消息数改变时的回调

@optional

- (void)didUnreadMessagesCountChanged;
Discussion

当EMConversation对象的enableUnreadMessagesCountEvent为YES时,会触发此回调


didUpdateConversationList:


会话列表信息更新时的回调

@optional

- (void)didUpdateConversationList:(NSArray *)conversationList;
Parameters
conversationList

会话列表

Discussion

1. 当会话列表有更改时(新添加,删除), 2. 登陆成功时, 以上两种情况都会触发此回调


willReceiveOfflineMessages


将要接收离线消息的回调

@optional

- (void)willReceiveOfflineMessages;

willSendMessage:error:


将要发送消息时的回调

@optional

- (void)willSendMessage:(EMMessage *)message error:(EMError *)error;
Parameters
message

将要发送的消息对象

error

错误信息