更新时间: 2021-03-08

# 本地获取

开发者可通过下面接口获取 SDK 存储在本地数据库的历史消息。

# 参数说明

输入参数说明

参数 类型 必填 说明
conversationType RCConversationType (opens new window) 会话类型,单聊传入 ConversationType_PRIVATE
targetId NSString 接收方的 userId
oldestMessageId long 最后一条消息的 messageId,获取此消息之前的 count 条消息,第一次调用应设置为 -1。
count int 需要获取的消息数量,每次最多获取 20 条

返回参数说明

返回值 返回类型 说明
history NSArray 消息实体RCMessage对象列表

返回参数说明

# 代码示例
NSArray *history = [[RCIMClient sharedRCIMClient] getHistoryMessages:ConversationType_PRIVATE
                                                            targetId:@"接收方的 userId"
                                                     oldestMessageId:lastMessageID
                                                               count:count];
                                                               
已复制
1
2
3
4
5

# 远端获取

开发者可通过下面接口获取 SDK 存储在服务端的历史消息。单群聊历史消息需要在 开发者后台 (opens new window) 中开通 IM 商用版 并开启 单群聊消息云存储 功能才可使用。

# 参数说明

输入参数说明

参数 类型 必填 说明
conversationType RCConversationType (opens new window) 会话类型
targetId NSString 目标会话 ID
option RCRemoteHistoryMsgOption 可配置的参数,包括拉取数量、拉取顺序等
successBlock Block - 获取成功的回调
errorBlock Block - 获取失败的回调

回调参数说明

success 说明:

回调参数 回调类型 说明
messages NSArray 获取到的历史消息数组
isRemaining BOOL 是否还有剩余消息

error 说明:

回调参数 回调类型 说明
status RCErrorCode (opens new window) 获取失败的错误码
# 代码示例

RCRemoteHistoryMsgOption *option = [RCRemoteHistoryMsgOption new];
option.recordTime = recordTime;
option.count = 10;
option.order = RCRemoteHistoryOrderDesc;

[[RCIMClient sharedRCIMClient] getRemoteHistoryMessages:ConversationType_PRIVATE targetId:@"接收方的 userId" option:option success:^(NSArray *messages, BOOL isRemaining) {
    
} error:^(RCErrorCode status) {
    
}];

已复制
1
2
3
4
5
6
7
8
9
10
11
12

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助