跳到主要内容

版本:2.X

历史消息获取

本地获取

Web 没有本地存储,不提供本地获取方法。

远端获取

从远端获取单群聊历史消息是指从融云服务端获取历史消息,该功能要求 App Key 已启用融云提供的单群聊消息云端存储服务。您可以在控制台 IM 服务管理页面为当前使用的 App Key 开启服务。如果使用生产环境的 App Key,请注意仅 IM 旗舰版IM 尊享版可开通该服务。具体功能与费用以融云官方价格说明页面及计费说明文档为准。

API 参考:getHistoryMessages

参数说明

输入参数说明

参数类型必填说明最低版本
conversationTypeNumber会话类型,系统会话传入 RongIMLib.ConversationType.SYSTEM2.2.0
targetIdString系统会话 ID2.2.0
timestampNumber获取时间戳, 0 为从当前时间拉取2.2.0
countNumber获取条数, 范围 1 - 202.2.0
objectNameString消息类名,仅桌面版解决方案有用2.3.4
orderNumber获取顺序,默认为 0,
0 表示升序:获取消息发送时间比传入 sentTime 的消息
1 表示倒序:获取消息发送时间比传入 sentTime 的消息
2.5.3

回调参数说明

参数类型说明
listArray获取的历史消息列表,返回 message 列表
hasMsgBool是否还有历史消息可以获取

message 属性说明

字段名类型说明
conversationTypeNumber会话类型
targetIdString系统会话 ID
senderUserIdString发送者 ID
contentObject消息内容
objectNameString消息的消息标识,融云内置消息以 "RC:" 开头
messageTypeString消息类型
messageIdString本地生成的消息 ID
messageUIdString服务端存储的消息 ID
messageDirectionNumber消息方向,发送: 1,接收: 2,枚举值通过 RongIMLib.MessageDirection 获取
offLineMessageBoolean是否为离线消息
sentStatusNumber发送状态, 枚举值通过 RongIMLib.SentStatus 获取
sentTimeNumber消息在融云服务端的发送时间
receivedStatusNumber接收状态, 枚举值通过 RongIMLib.ReceivedStatus 获取
receivedTimeNumber接收时间

代码示例

var conversationType = RongIMLib.ConversationType.SYSTEM;
var targetId = '系统会话 ID';
var timestamp = 0;
var count = 20;
RongIMLib.RongIMClient.getInstance().getHistoryMessages(conversationType, targetId, timestamp, count, {
onSuccess: function(list, hasMsg) {
/*
list: 获取的历史消息列表
hasMsg: 是否还有历史消息可以获取
*/
console.log('获取历史消息成功', list);

},
onError: function(error) {
// 请排查:单群聊消息云存储是否开通
console.log('获取历史消息失败', error);
}
});