get-history
开通服务
从远端获取单群聊历史消息是指从融云服务端获取历史消息,该功能要求 App Key 已启用融云提供的单群聊消息云端存储服务。您可以在控制台 IM 服务管理页面为当前使用的 App Key 开启服务。如果使用生产环境的 App Key,请注意仅 IM 旗舰版或 IM 尊享版可开通该服务。具体功能与费用以融云官方价格说明页面及计费说明文档为准。
提示:请注意区分历史消息记录与离线消息?。融云针对单聊、群聊、系统消息默认提供最多 7 天(可调整)的离线消息缓存服务。客户端上线时 SDK 会自动收取离线期间的消息,无需 App 层调用 API。详见管理离线消息存储配置。
获取历史消息
开发者可以通过此接口来获取某个会话的历史消息。
方法
loadMessages(type: RCIMIWConversationType, targetId: string, channelId: string, sentTime: number, order: RCIMIWTimeOrder, policy: RCIMIWMessageOperationPolicy, count: number): Promise<number>;
参数说明
参数名 | 类型 | 描述 |
---|---|---|
type | RCIMIWConversationType | 会话类型 |
targetId | string | 会话 ID |
channelId | string | 频道 ID,暂不支持该参数。传 null 即可。 |
sentTime | number | 当前消息时间戳 |
order | RCIMIWTimeOrder | 获取消息的方向。 BEFORE:获取 sentTime 之前的消息 (时间递减), AFTER:获取 sentTime 之后的消息 (时间递增) |
policy | RCIMIWMessageOperationPolicy | 消息的加载策略。 LOCAL:只加载本地, REMOTE:只加载远端, LOCAL_REMOTE:本地远端都加载 |
count | number | 获取的消息数量,count 大于 0,小于等于 20。 |
返回值
返回值 | 描述 |
---|---|
Promise<number> | 当次接口操作状态码,并不代表最终操作结果,状态码详细信息 |
代码示例
engine.loadMessages(
type,
targetId,
channelId,
sentTime,
order,
policy,
count
);
.then((code: number) => {});
回调方法
- setOnMessagesLoadedListener
setOnMessagesLoadedListener(listener?: (code: number, type: RCIMIWConversationType, targetId: string, channelId: string, sentTime: number, order: RCIMIWTimeOrder, messages: Array<RCIMIWMessage>) => void): void;
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
code | number | 接口回调的状态码,0 代表成功,非 0 代表出现异常 |
type | RCIMIWConversationType | 接口调用时传入的会话类型 |
targetId | string | 调用接口时传入的会话 ID |
channelId | string | 调用接口时传入的频道 ID |
sentTime | number | 调用接口时传入的消息时间戳 |
order | RCIMIWTimeOrder | 调用接口时传入的获取方向 |
messages | List<RCIMIWMessage> | 查询到的消息集合 |
代码示例
engine.setOnMessagesLoadedListener((code, type, targetId, channelId, sentTime, order, messages) => {});
通过 messageId 获取消息
开发者可以通过此接口来获取某条消息。