历史记录
[TOC]
本地记录
QDIMChatManager
支持本地查询消息
原型
@protocol QDIMChatManager <NSObject>
/**
* 从本地db读取一个会话里某条消息之前的若干条的消息
*
* @param session 消息所属的会话
* @param message 当前最早的消息,没有则传入nil
* @param limit 个数限制
*
* @return 消息列表,按时间从小到大排列
*/
- (NSArray<QDMessage *> *)messagesInSession:(QDSession *)session message:(nullable QDMessage *)message limit:(NSInteger)limit;
@end
属性列表
参数 | 类型 | 说明 |
---|---|---|
session | QDSession | 消息所属的会话 |
message | QDMessage | 锚点消息 |
limit | NSInteger | 读取条数限制 |
传入一个已知的消息,返回比这个消息更早的消息集合。如果没有已知的消息,则传入 nil,返回最新的消息集合。
// IMSessionMsgDatasource.m
- (void)resetMessages:(void(^)(NSError *error)) handler
{
...
// 获取到本地会话最后 limit 个消息并接到数据末尾
NSArray<QDMessage *> *messages = [[QDClient sharedClient].chatManager messagesInSession:_currentSession message:nil limit:_messageLimit];
[self appendMessageModels:[self modelsWithMessages:messages]];
...
}
- QDIMChatManager 支持按消息 id 查询消息,可以查出被删除的消息。
@protocol QDIMChatManager <NSObject>
/**
* 根据消息Id获取消息
*
* @param session 消息所属会话结合
*
* @param messageIds 消息Id集合
*
* @return 消息列表,按时间从小到大排列
*/
- (nullable NSArray<QDMessage *> *)messagesInSession:(QDSession *)session messageIds:(NSArray<NSString *> *)messageIds;
@end
- QDIMChatManager 支持搜索本地历史消息
@protocol QDIMChatManager <NSObject>
/**
* 搜索本地会话内消息
*
* @param session 消息所属的会话
* @param option 搜索选项
* @param result 读取的消息列表结果
*/
- (void)searchMessages:(QDSession *)session option:(QDMessageSearchOption *)option result:(nullable QDSearchMessageBlock)result;
/**
* 全局搜索本地消息
*
* @param option 搜索选项
* @param result 读取的消息内容
*/
- (void)searchAllMessages:(QDMessageSearchOption *)option result:(nullable QDGlobalSearchMessageBlock)result;
@end