历史记录

本地记录

  • 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