IChatManagerConversation

Extends Protocol:
IChatManagerBase
Declared In:

Introduction

本协议主要用于聊天数据库的操作, 包括获取会话对象、保存会话对象、删除会话对象、获取会话未读记录的条数等



Methods

-2_0_0

获取当前登录用户所有包含未读消息的会话对象的个数

-2_0_6

保存当前登录用户的会话列表到数据库

-2_0_8

获取当前登录用户的会话列表

-2_1_0

获取所有conversation的未读消息数量

-conversationForChatter:conversationType:

获取某个用户的会话

-conversationForChatter:isGroup:

获取某个用户的会话

-importMessage:append2Chat:

导入聊天消息

-insertConversationsToDB:append2Chat:

保存多个会话对象到数据库

-insertConversationToDB:append2Chat:

保存单个会话对象到数据库

-insertMessagesToDB:

保存一组聊天消息

-insertMessagesToDB:forChatter:append2Chat:

保存一组聊天消息(推荐用法,速度有惊喜哦)

-insertMessageToDB:

保存聊天消息到DB

-insertMessageToDB:append2Chat:

导入聊天消息

-loadAllConversationsFromDatabaseWithAppend2Chat:

获取当前登录用户的会话列表

-loadTotalUnreadMessagesCountFromDatabase

从数据库获取所有未读消息数量

-removeAllConversationsWithDeleteMessages:

删除所有会话对象

-removeAllConversationsWithDeleteMessages:append2Chat:

删除所有会话对象

-removeConversationByChatter:deleteMessages:

删除某个会话对象

-removeConversationByChatter:deleteMessages:append2Chat:

删除某个会话对象

-removeConversationsByChatters:deleteMessages:

删除某几个会话对象

-removeConversationsByChatters:deleteMessages:append2Chat:

删除某几个会话对象

-saveMessage:

保存聊天消息到DB

-saveMessages:

保存一组聊天消息

-searchMessagesWithCriteria:
-searchMessagesWithCriteria:withChatter:
-unreadMessagesCountForConversation:

获取单个会话对象的未读消息数量


2_0_0


获取当前登录用户所有包含未读消息的会话对象的个数

@optional

- (NSUInteger)unreadConversationsCount EM_DEPRECATED_IOS(2_0_0, 2_0_8, "不再提供该属性");
Return Value

当前登录用户所有包含未读消息的会话对象的个数


2_0_6


保存当前登录用户的会话列表到数据库

@optional

- (NSInteger)saveAllConversations EM_DEPRECATED_IOS(2_0_6, 2_1_1, "Delete");
Return Value

成功保存的会话对象列表的项数


2_0_8


获取当前登录用户的会话列表

@optional

- (NSArray *)loadAllConversations EM_DEPRECATED_IOS(2_0_8, 2_1_1, "Use - loadAllConversationsFromDatabase");
Return Value

会话对象列表

Discussion

直接从数据库中删除,并不会返回相关回调方法; 若希望返回相关回调方法,请使用loadAllConversationsFromDatabaseWithAppend2Chat:


2_1_0


获取所有conversation的未读消息数量

@optional

- (NSUInteger)totalUnreadMessagesCount EM_DEPRECATED_IOS(2_1_0, 2_1_6, "Use - loadTotalUnreadMessagesCountFromDatabase");
Return Value

未读消息数量


conversationForChatter:conversationType:


获取某个用户的会话

@optional

- (EMConversation *)conversationForChatter:(NSString *)chatter conversationType:(EMConversationType)type;
Parameters
chatter

需要获取会话对象的用户名, 对于群组是群组ID,聊天室则是聊天室ID

Return Value

会话对象

Discussion

此方法获取会话的顺序如下:

  1. 查找内存会话列表中的会话;

  2. 如果没找到, 试图从数据库中查找此条会话;

  3. 如果仍没找到, 创建一个新的会话, 加到会话列表中, 并触发didUpdateConversationList:回调


conversationForChatter:isGroup:


获取某个用户的会话

@optional

- (EMConversation *)conversationForChatter:(NSString *)chatter isGroup:(BOOL)isGroup EM_DEPRECATED_IOS(2_0_0, 2_1_6, "Use - conversationForChatter:conversationType");
Parameters
chatter

需要获取会话对象的用户名, 对于群组, 则是群组ID

Return Value

会话对象

Discussion

此方法获取会话的顺序如下:

  1. 查找内存会话列表中的会话;

  2. 如果没找到, 试图从数据库中查找此条会话;

  3. 如果仍没找到, 创建一个新的会话, 加到会话列表中, 并触发didUpdateConversationList:回调


importMessage:append2Chat:


导入聊天消息

@optional

- (BOOL)importMessage:(EMMessage *)message append2Chat:(BOOL)append2Chat EM_DEPRECATED_IOS(2_0_6, 2_1_1, "Use - insertMessageToDB:append2Chat:");
Parameters
message

待导入的聊天消息

append2Chat

是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。

Return Value

是否成功导入聊天消息


insertConversationsToDB:append2Chat:


保存多个会话对象到数据库

@optional

- (NSInteger)insertConversationsToDB:(NSArray *)conversations append2Chat:(BOOL)append2Chat;
Parameters
conversations

需要保存的会话对象列表

append2Chat

是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。

Return Value

保存成功的会话对象个数


insertConversationToDB:append2Chat:


保存单个会话对象到数据库

@optional

- (BOOL)insertConversationToDB:(EMConversation *)conversation append2Chat:(BOOL)append2Chat;
Parameters
conversation

需要保存的会话对象

append2Chat

是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。

Return Value

保存成功或失败

Discussion

对数据库中取出的数据修改后, 需要调用该方法


insertMessagesToDB:


保存一组聊天消息

@optional

- (NSInteger)insertMessagesToDB:(NSArray *)messages;
Parameters
messages

待保存的聊天消息列表

Return Value

成功保存的聊天消息条数

Discussion

请调用者确保传入消息的有效性(conversationChatter和isRead等状态正确赋值); 消息会直接保存到数据库中,并不会调用相关回调方法,请自行调用[loadAllConversationsFromDatabaseWithAppend2Chat:]更新会话列表


insertMessagesToDB:forChatter:append2Chat:


保存一组聊天消息(推荐用法,速度有惊喜哦)

@optional

- (BOOL)insertMessagesToDB:(NSArray *)messages forChatter:(NSString *)chatter append2Chat:(BOOL)append2Chat;
Parameters
messages

待保存的聊天消息列表

chatter

必填选项,message的conversationChatter

append2Chat

是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。

Return Value

是否成功插入


insertMessageToDB:


保存聊天消息到DB

@optional

- (BOOL)insertMessageToDB:(EMMessage *)message;
Parameters
message

待保存的聊天消息

Return Value

是否成功保存聊天消息

Discussion

消息会直接保存到数据库中,并不会调用相关回调方法; 若希望调用相关回调方法,请使用insertMessageToDB:append2Chat:


insertMessageToDB:append2Chat:


导入聊天消息

@optional

- (BOOL)insertMessageToDB:(EMMessage *)message append2Chat:(BOOL)append2Chat;
Parameters
message

待导入的聊天消息

append2Chat

是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。

Return Value

是否成功导入聊天消息


loadAllConversationsFromDatabaseWithAppend2Chat:


获取当前登录用户的会话列表

@optional

- (NSArray *)loadAllConversationsFromDatabaseWithAppend2Chat:(BOOL)append2Chat;
Parameters
append2Chat

是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。

Return Value

会话对象列表


loadTotalUnreadMessagesCountFromDatabase


从数据库获取所有未读消息数量

@optional

- (NSUInteger)loadTotalUnreadMessagesCountFromDatabase;
Return Value

未读消息数量


removeAllConversationsWithDeleteMessages:


删除所有会话对象

@optional

- (BOOL)removeAllConversationsWithDeleteMessages:(BOOL)aDeleteMessages EM_DEPRECATED_IOS(2_1_0, 2_1_2, "Use - removeAllConversationsWithDeleteMessages:append2Chat:");
Parameters
aDeleteMessages

是否删除这个会话对象所关联的聊天记录

Return Value

是否成功执行

Discussion

会话会直接从数据库中删除,并不会返回相关回调方法; 若希望返回相关回调方法,请使用removeAllConversationsWithDeleteMessages:append2Chat:


removeAllConversationsWithDeleteMessages:append2Chat:


删除所有会话对象

@optional

- (BOOL)removeAllConversationsWithDeleteMessages:(BOOL)aDeleteMessages append2Chat:(BOOL)append2Chat;
Parameters
aDeleteMessages

是否删除这个会话对象所关联的聊天记录

append2Chat

是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。

Return Value

是否成功执行


removeConversationByChatter:deleteMessages:


删除某个会话对象

@optional

- (BOOL)removeConversationByChatter:(NSString *)chatter deleteMessages:(BOOL)aDeleteMessages EM_DEPRECATED_IOS(2_1_0, 2_1_2, "Use - removeConversationByChatter:deleteMessages:append2Chat:");
Parameters
chatter

这个会话对象所对应的用户名

aDeleteMessages

是否删除这个会话对象所关联的聊天记录

Return Value

删除成功或失败

Discussion

直接从数据库中删除,并不会返回相关回调方法; 若希望返回相关回调方法,请使用removeConversationByChatters:deleteMessages:append2Chat:


removeConversationByChatter:deleteMessages:append2Chat:


删除某个会话对象

@optional

- (BOOL)removeConversationByChatter:(NSString *)chatter deleteMessages:(BOOL)aDeleteMessages append2Chat:(BOOL)append2Chat;
Parameters
chatter

这个会话对象所对应的用户名

aDeleteMessages

是否删除这个会话对象所关联的聊天记录

append2Chat

是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。

Return Value

删除成功或失败


removeConversationsByChatters:deleteMessages:


删除某几个会话对象

@optional

- (NSUInteger)removeConversationsByChatters:(NSArray *)chatters deleteMessages:(BOOL)aDeleteMessages EM_DEPRECATED_IOS(2_1_0, 2_1_2, "Use - removeConversationsByChatters:deleteMessages:append2Chat:");
Parameters
chatters

这几个要被删除的会话对象所对应的用户名列表

aDeleteMessages

是否删除这个会话对象所关联的聊天记录

Return Value

成功删除的会话对象的个数

Discussion

直接从数据库中删除,并不会返回相关回调方法; 若希望返回相关回调方法,请使用removeConversationsByChatters:deleteMessages:append2Chat:


removeConversationsByChatters:deleteMessages:append2Chat:


删除某几个会话对象

@optional

- (NSUInteger)removeConversationsByChatters:(NSArray *)chatters deleteMessages:(BOOL)aDeleteMessages append2Chat:(BOOL)append2Chat;
Parameters
chatters

这几个要被删除的会话对象所对应的用户名列表

aDeleteMessages

是否删除这个会话对象所关联的聊天记录

append2Chat

是否加到内存中。 YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI; NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。

Return Value

成功删除的会话对象的个数


saveMessage:


保存聊天消息到DB

@optional

- (BOOL)saveMessage:(EMMessage *)message EM_DEPRECATED_IOS(2_0_6, 2_1_1, "Use - insertMessageToDB:");
Parameters
message

待保存的聊天消息

Return Value

是否成功保存聊天消息

Discussion

消息会直接保存到数据库中,并不会调用相关回调方法; 若希望调用相关回调方法,请使用insertMessageToDB:append2Chat:


saveMessages:


保存一组聊天消息

@optional

- (NSInteger)saveMessages:(NSArray *)messages EM_DEPRECATED_IOS(2_0_6, 2_1_1, "Use - insertMessagesToDB:");
Parameters
messages

待保存的聊天消息列表

Return Value

成功保存的聊天消息条数

Discussion

请调用者确保传入消息的有效性(conversationChatter和isRead等状态正确赋值); 消息会直接保存到数据库中,并不会调用相关回调方法,请自行调用[loadAllConversationsFromDatabaseWithAppend2Chat:]更新会话列表


searchMessagesWithCriteria:


@optional

- (NSArray *)searchMessagesWithCriteria:(NSString *)criteria;
Parameters
criteria

搜索条件

Return Value

搜索结果, 由EMMessage对象组成

Discussion

从所有的聊天记录中搜索符合条件的记录


searchMessagesWithCriteria:withChatter:


@optional

- (NSArray *)searchMessagesWithCriteria:(NSString *)criteria withChatter:(NSString *)chatter;
Parameters
criteria

搜索条件

chatter

聊天对象的用户名

Return Value

搜索结果, 由EMMessage对象组成

Discussion

从单个chatter聊天记录中搜索符合条件的记录


unreadMessagesCountForConversation:


获取单个会话对象的未读消息数量

@optional

- (NSUInteger)unreadMessagesCountForConversation:(NSString *)chatter;
Parameters
chatter

此会话对象所对应的用户名

Return Value

此绘画对象的未读消息数量


Properties

conversations

当前登陆用户的会话对象列表


conversations


当前登陆用户的会话对象列表

@optional

@property (nonatomic, readonly) NSArray *conversations;