获取全部会话
获取本地会话列表
Web 没有本地数据库,不提供获取本地会话列表接口。
获取远端会话列表
会话列表生成规则 : 服务端会根据消息来生成初始会话列表, 在收到消息和发送消 息之后服务端会更新会话列表。
从远端获取单群聊历史消息是指从融云服务端获取历史消息,该功能要求 App Key 已启用融云提供的单群聊消息云端存储服务。您可以在控制台 IM 服务管理页面为当前使用的 App Key 开启服务。如果使用生产环境的 App Key,请注意仅 IM 旗舰版或 IM 尊享版可开通该服务。具体功能与费用以融云官方价格说明页面及计费说明文档为准。
API 参考:getConversationList
参数说明
输入参数说明
参数 | 类型 | 必填 | 说明 | 最低版本 |
---|---|---|---|---|
callback | Object | 是 | 回调对象 | 2.2.0 |
callback.onSuccess | Function | 是 | 成功回调 | 2.2.0 |
callback.onError | Function | 是 | 失败回调 | 2.2.0 |
conversationTypes | Array | 是 | 获取的会话类型, 获取所有会话类型传 null | 2.3.3 |
count | Number | 否 | 获取会话数量 | 2.3.3 |
conversationTypes
枚举值说明
会话类型 | 说明 | 枚举值 |
---|---|---|
RongIMLib.ConversationType.PRIVATE | 单聊 | 1 |
RongIMLib.ConversationType.GROUP | 群聊 | 3 |
RongIMLib.ConversationType.CHATROOM | 聊天室 | 4 |
RongIMLib.ConversationType.SYSTEM | 系统 | 6 |
回调参数说明
onSuccess
说明:
回调参数 | 类型 | 说明 |
---|---|---|
list | Array | 会话列表,会话参数说明请参照 conversation 属性说明 |
conversation
属性说明:
字段名 | 类型 | 说明 |
---|---|---|
conversationType | Number | 会话类型 |
targetId | String | 群组 ID |
latestMessageId | String | 会话中最后一条消息 ID |
objectName | String | 会话中最后一条消息的消息标识, 融云内置消息以 "RC:" 开头 |
unreadMessageCount | Number | 当前会话的未读消息数 |
latestMessage | Object | 会话中最后一条消息, 消息结构详见消息数据结构 |
sentStatus | Number | 会话中最后一条消息发送状态 |
sentTime | Number | 会话中最后一条消息融云服务端的发送时间 |
isTop | Boolean | 会话置顶状态 |
notificationStatus | Number | 会话免打扰状态 |
代码示例
var count = 150;
var callback = {
onSuccess: function(list) {
console.log('获取会话列表成功', list);
},
onError: function(error) {
console.log('获取会话列表失败', error);
}
}
RongIMClient.getInstance().getConversationList(callback, null, count);
返回的会话列表 list 长度是在传递的 count 基础上进一步筛选 conversationTypes 的结果,数量会小于等于 count。
常见问题
Q1: 切换用户后获取会话列表,会获取到不属于当前用户的会话
A1: 解决方案
在退出之前先清除掉缓存在调用 logout
RongIMClient.getInstance().clearCache();
RongIMClient.getInstance().logout();
Q2: 会话列表的名字和头像怎么维护
A2: 解决方案
1、用户信息在您的服务器维护,例如:用户 Id、头像、名称等
2、通过会话列表中的 targetId、senderUserId 在您应用服务器获取用户信息
3、使用用户信息与会话列表通过 targetId、senderUserId 做为对应关系将数据合并
4、将列表渲染至页面
说明:
targetId: 接收方用户或群组 ID
senderUserId: 消息发送人 ID