#import <NIMConversationManagerProtocol.h>
◆ addDelegate:
◆ addEmptyRecentSessionBySession:
- (void) addEmptyRecentSessionBySession: |
|
(NIMSession *) |
session |
|
增加某个最近会话
- 参数
-
session | 待增加的最近会话 @discussion 异步方法 |
◆ addEmptyRecentSessionBySession:option:
增加某个最近会话
- 参数
-
session | 待增加的最近会话 |
option | 配置项 @discussion 异步方法 |
◆ allIncompleteSessionInfos:
◆ allRecentSessions
获取所有最近会话。
- 返回
- 最近会话列表 @discussion SDK 以 map 的形式保存 sessions,调用这个方法时将进行排序,数据量较大 (上万) 时会比较耗时。 该方法默认是同步查询所有sessions,当数据量较大(上万)会比较耗时,可能会卡主线程,这种情况下 用户可以配置NIMSDKConfig中的asyncLoadRecentSessionEnabled属性为YES,此时该接口可以先返回 100条最近会话,等全部加载完会回调didLoadAllRecentSessionCompletion,此后再调用该接口可以全量返回 所有会话,用户需要在didLoadAllRecentSessionCompletion回调中及时更新UI展示。
◆ allRecentSessionsWithOption:
获取所有最近会话
- 返回
- 最近会话列表 @discussion SDK 以 map 的形式保存 sessions,调用这个方法时将进行排序,数据量较大 (上万) 时会比较耗时。 通过该接口获取的最近会话列表与allRecentSessions接口不同,是基于allRecentSessions接口筛选类型之后重新生成的新对象 需要用户自行在外部管理,所有回调不回回调该接口查询的任何会话
◆ allUnreadCount
- (NSInteger) allUnreadCount |
|
|
|
获取所有未读数 @discussion 只能在主线程调用,包括忽略提醒的会话
- 返回
- 未读数
◆ allUnreadCount:
- (NSInteger) allUnreadCount: |
|
(BOOL) |
notify |
|
获取所有需要通知/不需要通知的最近会话未读数
- 参数
-
- 返回
- 未读数 @discussion 群只有 notify state != NIMTeamNotifyStateNone 才算是不允许通知
◆ allUnreadMessagesInSession:
- (NSArray *) allUnreadMessagesInSession: |
|
(NIMSession *) |
session |
|
◆ allUnreadMessagesInSession:completion:
◆ batchMarkMessagesReadInSessions:
- (void) batchMarkMessagesReadInSessions: |
|
(NSArray< NIMSession * > *) |
sessions |
|
批量设置多个会话消息已读
@discussion 异步方法。不会触发单条 recentSession 更新的回调,但会触发回调 - onBatchMarkMessagesReadInSessions:
◆ batchMarkMessagesReadInSessions:completion:
批量设置多个会话消息已读
- 参数
-
completion | 结果回调。部分成功时,可以从NIMBatchSendACKSessionsBlock的sessions参数得到失败的会话 @discussion 异步方法。不会触发单条 recentSession 更新的回调,但会触发回调 - onBatchMarkMessagesReadInSessions: |
◆ cancelMigrateMessages
- (void) cancelMigrateMessages |
|
|
|
◆ decodeMessageFromData:
- (NIMMessage *) decodeMessageFromData: |
|
(NSData *) |
encodeData |
|
反序列化消息数据
- 参数
-
- 返回
- 消息对象 @discussion 此接口用于反序列化消息的数据,请与encodeMessageToData配套使用,用于实现消息本地序列化
◆ deleteAllMessages:
删除所有会话消息
- 参数
-
option | 删除消息选项 @discussion 调用这个接口只会触发allMessagesDeleted这个回调,其他针对单个recentSession的回调都不会被调用 |
◆ deleteAllmessagesInSession:option:
删除某个会话的所有消息
- 参数
-
session | 待删除会话 |
option | 删除消息选项 |
◆ deleteAllMessagesInSession:option:completion:
删除某个会话的所有消息
- 参数
-
session | 待删除会话 |
option | 删除消息选项 |
◆ deleteAllMessagesInSessions:option:completion:
删除指定多个会话的所有消息
- 参数
-
sessions | 待删除会话 |
option | 删除消息选项 |
◆ deleteAllRemoteMessagesInSession:options:completion:
删除某个会话的所有本地和云端的历史消息。删除后,查询云端消息历史的接口将不能返回这些消息。
- 参数
-
session | 目标会话 |
options | 清空消息历史的可选项 |
block | 清空完成后的回调 |
◆ deleteMessage:
◆ deleteMessage:option:
删除某条消息
- 参数
-
message | 待删除的聊天消息 |
option | 删除消息选项 |
◆ deleteMessageFromServer:ext:completion:
删除本地某条消息,同时删除服务端历史、漫游
- 参数
-
message | 待删除的聊天消息 |
ext | 扩展字段 |
block | 完成回调 |
◆ deleteMessagesInSession:option:completion:
删除指定范围内的消息,如指定时间范围
- 参数
-
session | 目标会话 |
option | 删除消息选项 |
block | 完成回调 |
◆ deleteRecentSession:
删除某个最近会话
- 参数
-
recentSession | 待删除的最近会话 @discussion 异步方法,删除最近会话,但保留会话内消息 |
◆ deleteRecentSession:option:completion:
删除某个最近会话
- 参数
-
recentSession | 待删除的最近会话 |
option | 是否删除漫游选项,isDeleteRoamMessage默认为NO |
completion | 结果回调 @discussion 异步方法,删除最近会话,但保留会话内消息 |
◆ deleteRemoteMessages:exts:completion:
批量删除消息,同时删除服务端和本地。所有传入的消息必需属于同一个会话。
- 参数
-
messages | 消息数组 |
exts | key为消息id,value为删除该消息所对应的扩展信息 |
completion | 删除完成的回调 |
◆ deleteRemoteSessions:completion:
删除服务器端最近会话
- 参数
-
sessions | 需要删除的会话列表,内部只能是NIMSession |
completion | 完成的回调 @discussion 调用这个接口成功后,当前会话之前的消息都不会漫游到其他端 |
◆ deleteSelfRemoteSession:option:completion:
清空点对点会话对应服务端的消息
- 参数
-
session | 目标会话列表 |
option | 清空消息选项 |
completion | 完成回调 @discussion 只支持点对点,清空本用户的服务端消息,不影响对方;如果不设置清空选项,服务端默认会同时清空漫游消息; |
◆ deleteServerSessions:completion:
删除服务端
- 参数
-
sessions | 目标会话 |
completion | 完成回调 |
◆ encodeMessageToData:
- (NSData *) encodeMessageToData: |
|
(NIMMessage *) |
message |
|
序列化消息
- 参数
-
- 返回
- 序列化数据 @discussion 此接口用于序列化消息,请与decodeMessageFromData配套使用,用于实现消息本地序列化
◆ exportMeessageInfosWithDelegate:progress:completion:
导出历史消息到本地文件
- 参数
-
delegate | 自定义消息的处理 delegate |
progress | 导出进度更新回调 |
completion | 导出完成回调 |
◆ fetchMessageHistory:option:result:
从服务器上获取一个会话里某条消息之前的若干条的消息
- 参数
-
session | 消息所属的会话 |
option | 搜索选项 |
result | 读取的消息列表结果 @discussion 此接口不支持查询聊天室消息,聊天室请参考 NIMChatroomManagerProtocol 中的查询消息接口。 |
◆ fetchMigrateMessageInfo:
◆ fetchServerSessionBySession:completion:
从服务端获取会话信息
- 参数
-
session | 目标会话 |
completion | 完成回调 |
◆ fetchServerSessions:completion:
从服务端分页获取历史会话列表
- 参数
-
option | 分页查询选项,可为空,空时默认全量获取 |
completion | 完成回调 |
◆ getMessagesDynamically:completion:
动态途径获取消息,默认回调错误码403,动态能力需要开通功能,并在同步完成后生效
- 参数
-
◆ importMessageInfosAtPath:delegate:progress:completion:
导入历史消息
- 参数
-
infoFilePath | 已解码并序列化了的本地历史消息文件路径 |
delegate | 自定义消息的处理 delegate |
progress | 导入进度更新回调 |
completion | 导入完成回调 |
◆ importRecentSessions:completion:
导入最近会话
- 参数
-
importedRecentSession | 待导入的会话集合 |
completion | 完成后的回调 @discussion 当导入最近会话成功之后,不会收到 NIMChatManagerDelegate 中的 recentSession 变化的回调,请直接在 completion 中做处理。不允许插入已经存在的最近会话。 |
◆ importServerRecentSessions:completion:
导入最近会话
- 参数
-
recentSessions | 待导入的会话集合 |
completion | 完成后的回调 @discussion 当导入最近会话成功之后,不会收到 NIMChatManagerDelegate 中的 recentSession 变化的回调,请直接在 completion 中做处理。不允许插入已经存在的最近会话。 |
◆ incompleteSessionInfoBySession:completion:
查询漫游消息未完整会话信息
- 参数
-
session | 目标会话 |
completion | 结果完成回调 |
◆ markAllMessagesRead
- (void) markAllMessagesRead |
|
|
|
设置所有会话消息为已读
@discussion 异步方法,消息会标记为设置的状态。不会触发单条 recentSession 更新的回调,但会触发回调 - (void)allMessagesRead
◆ markAllMessagesReadInSession:
- (void) markAllMessagesReadInSession: |
|
(NIMSession *) |
session |
|
设置一个会话里所有消息置为已读
- 参数
-
session | 需设置的会话 @discussion 异步方法,消息会标记为设置的状态 |
◆ markAllMessagesReadInSession:completion:
设置一个会话里所有消息置为已读
- 参数
-
session | 需设置的会话 |
session | 结果回调 @discussion 异步方法,消息会标记为设置的状态 |
◆ markMessagesReadOfType:
设置会话消息为已读
- 参数
-
type | 会话类型 @discussion 异步方法,消息会标记为设置的状态。不会触发单条 recentSession 更新的回调,但会触发回调 - (void)messagesReadOfType: |
◆ messagesInSession:completion:
从本地db读取一个会话里某条消息之前的若干条的消息
- 参数
-
◆ messagesInSession:message:limit:
从本地db读取一个会话里某条消息之前的若干条的消息
- 参数
-
session | 消息所属的会话 |
message | 当前最早的消息,没有则传入nil |
limit | 个数限制 |
- 返回
- 消息列表,按时间从小到大排列
◆ messagesInSession:message:limit:completion:
从本地db读取一个会话里某条消息之前的若干条的消息
- 参数
-
session | 消息所属的会话 |
message | 当前最早的消息,没有则传入nil |
limit | 个数限制 |
completion | 完成后的回调 |
◆ messagesInSession:messageIds:
- (nullable NSArray< NIMMessage * > *) messagesInSession: |
|
(NIMSession *) |
session |
messageIds: |
|
(NSArray< NSString * > *) |
messageIds |
|
|
| |
根据消息Id获取消息
- 参数
-
session | 消息所属会话结合 |
messageIds | 消息Id集合 |
- 返回
- 消息列表,按时间从小到大排列
◆ queryRecentSessionsWithLimit:
- (nullable NSArray< NIMRecentSession * > *) queryRecentSessionsWithLimit: |
|
(NSInteger) |
limit |
|
获取指定数量的最近会话
- 参数
-
limit | 本次查询最近会话数量上限。最大可设置到100,超过100则默认为100。 |
- 返回
- 最近会话列表
◆ recentSessionBySession:
根据当前 session 返回对应的最近会话信息
- 参数
-
- 返回
- 最近会话信息,如果找不到则返回 nil
◆ removeAllIncompleteSessionInfos
- (void) removeAllIncompleteSessionInfos |
|
|
|
◆ removeDelegate:
◆ removeIncompleteSessionInfoBySession:
- (void) removeIncompleteSessionInfoBySession: |
|
(NIMSession *) |
session |
|
◆ retrieveServerMessages:option:result:
根据关键字从服务器上检索消息
- 参数
-
session | 消息所属的会话 |
option | 检索选项 |
result | 读取的消息列表结果 @discussion 检索消息内容,大小写不敏感;此接口不支持查询聊天室消息,聊天室请参考 NIMChatroomManagerProtocol 中的消息接口。 |
◆ retrieveServerMessages:result:
根据关键字从服务器上全量检索消息
- 参数
-
option | 检索选项 |
result | 读取的消息列表结果 @discussion 检索消息内容,此接口仅支持查询P2P和群聊消息,不支持聊天室和超大群 |
◆ retrieveServerMessagesOrderByTime:result:
云端历史消息全文检索(按时间排序,不按会话分组)
- 参数
-
option | 检索选项,其中sessionLimit为无效变量 |
result | 读取的消息列表结果 @discussion 检索消息内容 |
◆ saveMessage:forSession:completion:
写入消息
- 参数
-
message | 需要更新的消息 |
session | 需要更新的会话 |
completion | 完成后的回调 @discussion 当保存消息成功之后,会收到 NIMChatManagerDelegate 中的 onRecvMessages: 回调。不允许插入已存在的消息 |
◆ searchAllMessages:result:
◆ searchMessages:option:result:
搜索本地会话内消息
- 参数
-
session | 消息所属的会话 |
option | 搜索选项 |
result | 读取的消息列表结果 |
◆ unreadCountOfType:
按 SessionType 获取未读数 @discussion 只能在主线程调用,包括忽略提醒的会话
- 参数
-
- 返回
- 未读数
◆ updateIncompleteSessions:completion:
更新未漫游完整会话列表
- 参数
-
messages | 消息对象,使用NIMMessage的会话、severId、timestamp、from等去更新b |
completion | 结果完成回调 |
◆ updateMessage:forSession:completion:
更新本地已存的消息记录
- 参数
-
message | 需要更新的消息 |
session | 需要更新的会话 |
completion | 完成后的回调 @discussion 为了保证存储消息的完整性,提供给上层调用的消息更新接口只允许更新如下字段:所有消息的本地拓展字段(LocalExt)和自定义消息的消息对象(messageObject) |
◆ updateMigrateMessageInfoWithURL:key:completion:
更新历史消息备份信息
- 参数
-
URL | 历史消息备份的 URL |
key | 历史消息备份的加密 key |
completion | 更新信息的完成回调 |
◆ updateRecentLocalExt:recentSession:
- (void) updateRecentLocalExt: |
|
(nullable NSDictionary *) |
ext |
recentSession: |
|
(NIMRecentSession *) |
recentSession |
|
|
| |
更新最近会话的本地扩展
- 参数
-
ext | 扩展信息 |
recentSession | 要更新的最近会话 @discussion 此扩展不会漫游到其他端,上层需要保证 NSDictionary 可以转换为 JSON。 |
◆ updateRecentLocalExt:recentSession:notifyRecentUpdate:
- (void) updateRecentLocalExt: |
|
(nullable NSDictionary *) |
ext |
recentSession: |
|
(NIMRecentSession *) |
recentSession |
notifyRecentUpdate: |
|
(BOOL) |
notifyRecentUpdate |
|
|
| |
更新最近会话的本地扩展
- 参数
-
ext | 扩展信息 |
recentSession | 要更新的最近会话 |
notifyRecentUpdate | 是否回调会话变更 @discussion 此扩展不会漫游到其他端,上层需要保证 NSDictionary 可以转换为 JSON。 |
◆ updateServerSessionExt:session:completion:
更新服务端获取会话扩展信息
- 参数
-
ext | 扩展信息 |
session | 目标最近会话 |
completion | 完成回调 |
该协议的文档由以下文件生成: