NIMSDK-iOS
载入中...
搜索中...
未找到
<NIMConversationManager>协议 参考

#import <NIMConversationManagerProtocol.h>

类 <NIMConversationManager> 继承关系图:

构造函数

(void) - deleteMessage:
 
(void) - deleteMessage:option:
 
(void) - deleteMessageFromServer:ext:completion:
 
(void) - deleteAllmessagesInSession:option:
 
(void) - deleteAllMessages:
 
(void) - deleteMessagesInSession:option:completion:
 
(void) - deleteAllRemoteMessagesInSession:options:completion:
 
(void) - deleteRemoteMessages:exts:completion:
 
(void) - addEmptyRecentSessionBySession:
 
(void) - addEmptyRecentSessionBySession:option:
 
(void) - deleteRecentSession:
 
(void) - deleteRecentSession:option:completion:
 
(void) - markAllMessagesRead
 
(void) - markMessagesReadOfType:
 
(void) - batchMarkMessagesReadInSessions:
 
(void) - batchMarkMessagesReadInSessions:completion:
 
(void) - markAllMessagesReadInSession:
 
(void) - markAllMessagesReadInSession:completion:
 
(void) - updateMessage:forSession:completion:
 
(void) - saveMessage:forSession:completion:
 
(void) - importRecentSessions:completion:
 
(nullable NSArray< NIMMessage * > *) - messagesInSession:message:limit:
 
(void) - messagesInSession:message:limit:completion:
 
(void) - getMessagesDynamically:completion:
 
(nullable NSArray< NIMMessage * > *) - messagesInSession:messageIds:
 
(NSInteger) - allUnreadCount
 
(NSInteger) - unreadCountOfType:
 
(NSInteger) - allUnreadCount:
 
(NSArray *) - allUnreadMessagesInSession:
 
(void) - allUnreadMessagesInSession:completion:
 
(nullable NSArray< NIMRecentSession * > *) - allRecentSessions
 
(nullable NSArray< NIMRecentSession * > *) - allRecentSessionsWithOption:
 
(nullable NIMRecentSession *) - recentSessionBySession:
 
(void) - fetchServerSessions:completion:
 
(void) - fetchServerSessionBySession:completion:
 
(void) - updateServerSessionExt:session:completion:
 
(void) - deleteServerSessions:completion:
 
(void) - fetchMessageHistory:option:result:
 
(void) - retrieveServerMessages:option:result:
 
(void) - retrieveServerMessages:result:
 
(void) - retrieveServerMessagesOrderByTime:result:
 
(void) - searchMessages:option:result:
 
(void) - searchAllMessages:result:
 
(void) - deleteRemoteSessions:completion:
 
(void) - deleteSelfRemoteSession:option:completion:
 
(void) - updateRecentLocalExt:recentSession:
 
(void) - exportMeessageInfosWithDelegate:progress:completion:
 
(void) - importMessageInfosAtPath:delegate:progress:completion:
 
(void) - cancelMigrateMessages
 
(void) - updateMigrateMessageInfoWithURL:key:completion:
 
(void) - fetchMigrateMessageInfo:
 
(NIMMessage *) - decodeMessageFromData:
 
(NSData *) - encodeMessageToData:
 
(void) - incompleteSessionInfoBySession:completion:
 
(void) - allIncompleteSessionInfos:
 
(void) - updateIncompleteSessions:completion:
 
(void) - removeIncompleteSessionInfoBySession:
 
(void) - removeAllIncompleteSessionInfos
 
(void) - addDelegate:
 
(void) - removeDelegate:
 

详细描述

会话管理器

函数文档

◆ addDelegate:

- (void) addDelegate: (id< NIMConversationManagerDelegate >)  delegate

添加通知对象

参数
delegate通知对象

◆ addEmptyRecentSessionBySession:

- (void) addEmptyRecentSessionBySession: (NIMSession *)  session

增加某个最近会话

参数
session待增加的最近会话 @discussion 异步方法

◆ addEmptyRecentSessionBySession:option:

增加某个最近会话

参数
session待增加的最近会话
option配置项 @discussion 异步方法

◆ allIncompleteSessionInfos:

- (void) allIncompleteSessionInfos: (NIMIncompleteSessionsBlock completion

查询所有漫游消息未漫游完整会话信息

参数
completion结果完成回调

◆ allRecentSessions

- (nullable NSArray< NIMRecentSession * > *) allRecentSessions

获取所有最近会话。

返回
最近会话列表 @discussion SDK 以 map 的形式保存 sessions,调用这个方法时将进行排序,数据量较大 (上万) 时会比较耗时。 该方法默认是同步查询所有sessions,当数据量较大(上万)会比较耗时,可能会卡主线程,这种情况下 用户可以配置NIMSDKConfig中的asyncLoadRecentSessionEnabled属性为YES,此时该接口可以先返回 100条最近会话,等全部加载完会回调didLoadAllRecentSessionCompletion,此后再调用该接口可以全量返回 所有会话,用户需要在didLoadAllRecentSessionCompletion回调中及时更新UI展示。

◆ allRecentSessionsWithOption:

- (nullable NSArray< NIMRecentSession * > *) allRecentSessionsWithOption: (NIMRecentSessionOption *)  option

获取所有最近会话

返回
最近会话列表 @discussion SDK 以 map 的形式保存 sessions,调用这个方法时将进行排序,数据量较大 (上万) 时会比较耗时。 通过该接口获取的最近会话列表与allRecentSessions接口不同,是基于allRecentSessions接口筛选类型之后重新生成的新对象 需要用户自行在外部管理,所有回调不回回调该接口查询的任何会话

◆ allUnreadCount

- (NSInteger) allUnreadCount

获取所有未读数 @discussion 只能在主线程调用,包括忽略提醒的会话

返回
未读数

◆ allUnreadCount:

- (NSInteger) allUnreadCount: (BOOL)  notify

获取所有需要通知/不需要通知的最近会话未读数

参数
notify是否需要通知
返回
未读数 @discussion 群只有 notify state != NIMTeamNotifyStateNone 才算是不允许通知

◆ allUnreadMessagesInSession:

- (NSArray *) allUnreadMessagesInSession: (NIMSession *)  session

◆ allUnreadMessagesInSession:completion:

- (void) allUnreadMessagesInSession: (NIMSession *)  session
completion: (NIMFetchMessageHistoryBlock completion 

◆ batchMarkMessagesReadInSessions:

- (void) batchMarkMessagesReadInSessions: (NSArray< NIMSession * > *)  sessions

批量设置多个会话消息已读

@discussion 异步方法。不会触发单条 recentSession 更新的回调,但会触发回调 - onBatchMarkMessagesReadInSessions:

◆ batchMarkMessagesReadInSessions:completion:

- (void) batchMarkMessagesReadInSessions: (NSArray< NIMSession * > *)  sessions
completion: (NIMBatchSendACKSessionsBlock completion 

批量设置多个会话消息已读

参数
completion结果回调。部分成功时,可以从NIMBatchSendACKSessionsBlock的sessions参数得到失败的会话 @discussion 异步方法。不会触发单条 recentSession 更新的回调,但会触发回调 - onBatchMarkMessagesReadInSessions:

◆ cancelMigrateMessages

- (void) cancelMigrateMessages

取消 导出/导入 历史消息操作

◆ decodeMessageFromData:

- (NIMMessage *) decodeMessageFromData: (NSData *)  encodeData

反序列化消息数据

参数
encodeData序列化的数据
返回
消息对象 @discussion 此接口用于反序列化消息的数据,请与encodeMessageToData配套使用,用于实现消息本地序列化

◆ deleteAllMessages:

- (void) deleteAllMessages: (nullable NIMDeleteMessagesOption *)  option

删除所有会话消息

参数
option删除消息选项 @discussion 调用这个接口只会触发allMessagesDeleted这个回调,其他针对单个recentSession的回调都不会被调用

◆ deleteAllmessagesInSession:option:

- (void) deleteAllmessagesInSession: (NIMSession *)  session
option: (nullable NIMDeleteMessagesOption *)  option 

删除某个会话的所有消息

参数
session待删除会话
option删除消息选项

◆ deleteAllRemoteMessagesInSession:options:completion:

- (void) deleteAllRemoteMessagesInSession: (NIMSession *)  session
options: (NIMSessionDeleteAllRemoteMessagesOptions *)  options
completion: (NIMSessionDeleteAllRemoteMessagesCompletionBlock completion 

删除某个会话的所有本地和云端的历史消息。删除后,查询云端消息历史的接口将不能返回这些消息。

参数
session目标会话
options清空消息历史的可选项
block清空完成后的回调

◆ deleteMessage:

- (void) deleteMessage: (NIMMessage *)  message

删除某条消息

参数
message待删除的聊天消息

◆ deleteMessage:option:

- (void) deleteMessage: (NIMMessage *)  message
option: (nullable NIMDeleteMessageOption *)  option 

删除某条消息

参数
message待删除的聊天消息
option删除消息选项

◆ deleteMessageFromServer:ext:completion:

- (void) deleteMessageFromServer: (NIMMessage *)  message
ext: (nullable NSString *)  ext
completion: (nullable NIMRemoveRemoteMessageBlock block 

删除本地某条消息,同时删除服务端历史、漫游

参数
message待删除的聊天消息
ext扩展字段
block完成回调

◆ deleteMessagesInSession:option:completion:

- (void) deleteMessagesInSession: (NIMSession *)  session
option: (nullable NIMBatchDeleteMessagesOption *)  option
completion: (nullable NIMBatchDeleteMessagesBlock block 

删除指定范围内的消息,如指定时间范围

参数
session目标会话
option删除消息选项
block完成回调

◆ deleteRecentSession:

- (void) deleteRecentSession: (NIMRecentSession *)  recentSession

删除某个最近会话

参数
recentSession待删除的最近会话 @discussion 异步方法,删除最近会话,但保留会话内消息

◆ deleteRecentSession:option:completion:

- (void) deleteRecentSession: (NIMRecentSession *)  recentSession
option: (NIMDeleteRecentSessionOption *)  option
completion: (NIMRemoveRemoteSessionBlock completion 

删除某个最近会话

参数
recentSession待删除的最近会话
option是否删除漫游选项,isDeleteRoamMessage默认为NO
completion结果回调 @discussion 异步方法,删除最近会话,但保留会话内消息

◆ deleteRemoteMessages:exts:completion:

- (void) deleteRemoteMessages: (NSArray< NIMMessage * > *)  messages
exts: (nullable NSDictionary< NSString *, NSString * > *)  exts
completion: (nullable NIMDeleteRemoteMessagesCompletionBlock completion 

批量删除消息,同时删除服务端和本地。所有传入的消息必需属于同一个会话。

参数
messages消息数组
extskey为消息id,value为删除该消息所对应的扩展信息
completion删除完成的回调

◆ deleteRemoteSessions:completion:

- (void) deleteRemoteSessions: (NSArray< NIMSession * > *)  sessions
completion: (nullable NIMRemoveRemoteSessionBlock completion 

删除服务器端最近会话

参数
sessions需要删除的会话列表,内部只能是NIMSession
completion完成的回调 @discussion 调用这个接口成功后,当前会话之前的消息都不会漫游到其他端

◆ deleteSelfRemoteSession:option:completion:

- (void) deleteSelfRemoteSession: (NIMSession *)  session
option: (nullable NIMClearMessagesOption *)  option
completion: (nullable NIMRemoveRemoteSessionBlock completion 

清空点对点会话对应服务端的消息

参数
session目标会话列表
option清空消息选项
completion完成回调 @discussion 只支持点对点,清空本用户的服务端消息,不影响对方;如果不设置清空选项,服务端默认会同时清空漫游消息;

◆ deleteServerSessions:completion:

- (void) deleteServerSessions: (NSArray< NIMSession * > *)  sessions
completion: (nullable NIMRemoteRecentSessionBlock completion 

删除服务端

参数
sessions目标会话
completion完成回调

◆ encodeMessageToData:

- (NSData *) encodeMessageToData: (NIMMessage *)  message

序列化消息

参数
message消息对象
返回
序列化数据 @discussion 此接口用于序列化消息,请与decodeMessageFromData配套使用,用于实现消息本地序列化

◆ exportMeessageInfosWithDelegate:progress:completion:

- (void) exportMeessageInfosWithDelegate: (id< NIMExportMessageDelegate >)  delegate
progress: (NIMExportMessageProgress progress
completion: (NIMExportMessageComletion completion 

导出历史消息到本地文件

参数
delegate自定义消息的处理 delegate
progress导出进度更新回调
completion导出完成回调

◆ fetchMessageHistory:option:result:

- (void) fetchMessageHistory: (NIMSession *)  session
option: (NIMHistoryMessageSearchOption *)  option
result: (nullable NIMFetchMessageHistoryBlock result 

从服务器上获取一个会话里某条消息之前的若干条的消息

参数
session消息所属的会话
option搜索选项
result读取的消息列表结果 @discussion 此接口不支持查询聊天室消息,聊天室请参考 NIMChatroomManagerProtocol 中的查询消息接口。

◆ fetchMigrateMessageInfo:

- (void) fetchMigrateMessageInfo: (NIMFetchMigrateMessageCompletion completion

获取历史消息备份信息

参数
completion获取历史消息备份的完成回调

◆ fetchServerSessionBySession:completion:

- (void) fetchServerSessionBySession: (NIMSession *)  session
completion: (nullable NIMFetchRecentSessionHistoryBlock completion 

从服务端获取会话信息

参数
session目标会话
completion完成回调

◆ fetchServerSessions:completion:

- (void) fetchServerSessions: (nullable NIMFetchServerSessionOption *)  option
completion: (nullable NIMFetchRecentSessionsHistoryBlock completion 

从服务端分页获取历史会话列表

参数
option分页查询选项,可为空,空时默认全量获取
completion完成回调

◆ getMessagesDynamically:completion:

- (void) getMessagesDynamically: (nonnull NIMGetMessagesDynamicallyParam *)  param
completion: (NIMGetMessagesDynamicallyBlock completion 

动态途径获取消息,默认回调错误码403,动态能力需要开通功能,并在同步完成后生效

参数
param
completion完成后的回调

◆ importMessageInfosAtPath:delegate:progress:completion:

- (void) importMessageInfosAtPath: (NSString *)  infoFilePath
delegate: (id< NIMImportMessageDelegate >)  delegate
progress: (NIMImportMessageProgress progress
completion: (NIMImportMessageCompletion completion 

导入历史消息

参数
infoFilePath已解码并序列化了的本地历史消息文件路径
delegate自定义消息的处理 delegate
progress导入进度更新回调
completion导入完成回调

◆ importRecentSessions:completion:

- (void) importRecentSessions: (NSArray< NIMImportedRecentSession * > *)  importedRecentSession
completion: (nullable NIMImportRecentSessionsBlock completion 

导入最近会话

参数
importedRecentSession待导入的会话集合
completion完成后的回调 @discussion 当导入最近会话成功之后,不会收到 NIMChatManagerDelegate 中的 recentSession 变化的回调,请直接在 completion 中做处理。不允许插入已经存在的最近会话。

◆ incompleteSessionInfoBySession:completion:

- (void) incompleteSessionInfoBySession: (NIMSession *)  session
completion: (nullable NIMIncompleteSessionsBlock completion 

查询漫游消息未完整会话信息

参数
session目标会话
completion结果完成回调

◆ markAllMessagesRead

- (void) markAllMessagesRead

设置所有会话消息为已读

@discussion 异步方法,消息会标记为设置的状态。不会触发单条 recentSession 更新的回调,但会触发回调 - (void)allMessagesRead

◆ markAllMessagesReadInSession:

- (void) markAllMessagesReadInSession: (NIMSession *)  session

设置一个会话里所有消息置为已读

参数
session需设置的会话 @discussion 异步方法,消息会标记为设置的状态

◆ markAllMessagesReadInSession:completion:

- (void) markAllMessagesReadInSession: (NIMSession *)  session
completion: (NIMSendACKSessionsBlock completion 

设置一个会话里所有消息置为已读

参数
session需设置的会话
session结果回调 @discussion 异步方法,消息会标记为设置的状态

◆ markMessagesReadOfType:

- (void) markMessagesReadOfType: (NIMSessionType type

设置会话消息为已读

参数
type会话类型 @discussion 异步方法,消息会标记为设置的状态。不会触发单条 recentSession 更新的回调,但会触发回调 - (void)messagesReadOfType:

◆ messagesInSession:message:limit:

- (nullable NSArray< NIMMessage * > *) messagesInSession: (NIMSession *)  session
message: (nullable NIMMessage *)  message
limit: (NSInteger)  limit 

从本地db读取一个会话里某条消息之前的若干条的消息

参数
session消息所属的会话
message当前最早的消息,没有则传入nil
limit个数限制
返回
消息列表,按时间从小到大排列

◆ messagesInSession:message:limit:completion:

- (void) messagesInSession: (NIMSession *)  session
message: (nullable NIMMessage *)  message
limit: (NSInteger)  limit
completion: (NIMFetchMessageHistoryBlock completion 

从本地db读取一个会话里某条消息之前的若干条的消息

参数
session消息所属的会话
message当前最早的消息,没有则传入nil
limit个数限制
completion完成后的回调

◆ messagesInSession:messageIds:

- (nullable NSArray< NIMMessage * > *) messagesInSession: (NIMSession *)  session
messageIds: (NSArray< NSString * > *)  messageIds 

根据消息Id获取消息

参数
session消息所属会话结合
messageIds消息Id集合
返回
消息列表,按时间从小到大排列

◆ recentSessionBySession:

- (nullable NIMRecentSession *) recentSessionBySession: (NIMSession *)  session

根据当前 session 返回对应的最近会话信息

参数
session会话
返回
最近会话信息,如果找不到则返回 nil

◆ removeAllIncompleteSessionInfos

- (void) removeAllIncompleteSessionInfos

移除所有未完整会话信息

◆ removeDelegate:

- (void) removeDelegate: (id< NIMConversationManagerDelegate >)  delegate

删除通知对象

参数
delegate通知对象

◆ removeIncompleteSessionInfoBySession:

- (void) removeIncompleteSessionInfoBySession: (NIMSession *)  session

根据会话移除未漫游完整会话信息

参数
session目标会话

◆ retrieveServerMessages:option:result:

- (void) retrieveServerMessages: (NIMSession *)  session
option: (NIMMessageServerRetrieveOption *)  option
result: (nullable NIMRetrieveServerMessagesBlock result 

根据关键字从服务器上检索消息

参数
session消息所属的会话
option检索选项
result读取的消息列表结果 @discussion 检索消息内容,大小写不敏感;此接口不支持查询聊天室消息,聊天室请参考 NIMChatroomManagerProtocol 中的消息接口。

◆ retrieveServerMessages:result:

- (void) retrieveServerMessages: (NIMMessageFullKeywordSearchOption *)  option
result: (nullable NIMRetrieveServerMessagesBlock result 

根据关键字从服务器上全量检索消息

参数
option检索选项
result读取的消息列表结果 @discussion 检索消息内容,此接口仅支持查询P2P和群聊消息,不支持聊天室和超大群

◆ retrieveServerMessagesOrderByTime:result:

- (void) retrieveServerMessagesOrderByTime: (NIMMessageFullKeywordSearchOrderByTimeOption *)  option
result: (nullable NIMRetrieveServerMessagesBlock result 

云端历史消息全文检索(按时间排序,不按会话分组)

参数
option检索选项,其中sessionLimit为无效变量
result读取的消息列表结果 @discussion 检索消息内容

◆ saveMessage:forSession:completion:

- (void) saveMessage: (NIMMessage *)  message
forSession: (NIMSession *)  session
completion: (nullable NIMUpdateMessageBlock completion 

写入消息

参数
message需要更新的消息
session需要更新的会话
completion完成后的回调 @discussion 当保存消息成功之后,会收到 NIMChatManagerDelegate 中的 onRecvMessages: 回调。不允许插入已存在的消息

◆ searchAllMessages:result:

- (void) searchAllMessages: (NIMMessageSearchOption *)  option
result: (nullable NIMGlobalSearchMessageBlock result 

全局搜索本地消息

参数
option搜索选项
result读取的消息内容

◆ searchMessages:option:result:

- (void) searchMessages: (NIMSession *)  session
option: (NIMMessageSearchOption *)  option
result: (nullable NIMSearchMessageBlock result 

搜索本地会话内消息

参数
session消息所属的会话
option搜索选项
result读取的消息列表结果

◆ unreadCountOfType:

- (NSInteger) unreadCountOfType: (NIMSessionType type

按 SessionType 获取未读数 @discussion 只能在主线程调用,包括忽略提醒的会话

参数
type会话类型
返回
未读数

◆ updateIncompleteSessions:completion:

- (void) updateIncompleteSessions: (NSArray< NIMMessage * > *)  messages
completion: (nullable NIMUpdateIncompleteSessionsBlock completion 

更新未漫游完整会话列表

参数
messages消息对象,使用NIMMessage的会话、severId、timestamp、from等去更新b
completion结果完成回调

◆ updateMessage:forSession:completion:

- (void) updateMessage: (NIMMessage *)  message
forSession: (NIMSession *)  session
completion: (nullable NIMUpdateMessageBlock completion 

更新本地已存的消息记录

参数
message需要更新的消息
session需要更新的会话
completion完成后的回调 @discussion 为了保证存储消息的完整性,提供给上层调用的消息更新接口只允许更新如下字段:所有消息的本地拓展字段(LocalExt)和自定义消息的消息对象(messageObject)

◆ updateMigrateMessageInfoWithURL:key:completion:

- (void) updateMigrateMessageInfoWithURL: (NSString *)  URL
key: (NSString *)  key
completion: (NIMUpdateMigrateMessageCompletion completion 

更新历史消息备份信息

参数
URL历史消息备份的 URL
key历史消息备份的加密 key
completion更新信息的完成回调

◆ updateRecentLocalExt:recentSession:

- (void) updateRecentLocalExt: (nullable NSDictionary *)  ext
recentSession: (NIMRecentSession *)  recentSession 

更新最近会话的本地扩展

参数
ext扩展信息
recentSession要更新的最近会话 @discussion 此扩展不会漫游到其他端,上层需要保证 NSDictionary 可以转换为 JSON。

◆ updateServerSessionExt:session:completion:

- (void) updateServerSessionExt: (NSString *)  ext
session: (NIMSession *)  session
completion: (nullable NIMRemoteRecentSessionBlock completion 

更新服务端获取会话扩展信息

参数
ext扩展信息
session目标最近会话
completion完成回调

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