文档导航
Flutter
SDK 版本:  5.X

获取会话

更新时间:2024-07-03 PDF

客户端 SDK 会根据收发的消息在本地数据库中生成对应会话。您可以从本地数据库获取 SDK 生成的会话列表。

获取会话列表

通过以下接口分页获取 SDK 在本地数据库生成的会话列表。获取到的会话列表按照时间倒序排列,置顶会话会排在最前。

方法

Future<int> getConversations(List<RCIMIWConversationType> conversationTypes, String? channelId, int startTime, int count, {IRCIMIWGetConversationsCallback? callback});
              
已复制
1

参数说明

参数名 参数类型 描述
conversationTypes List<RCIMIWConversationType> 会话类型
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可
startTime int 时间戳(毫秒),获取小于此时间戳的会话,传 0 为查询最新数据。在分页获取会话时,传入回调结果中最后一条会话数据的 operationTime,来获取下一页数据。
count int 查询的数量, 0 < count <= 50
callback IRCIMIWGetConversationsCallback 获取会话列表事件回调。SDK 从 5.3.1 版本开始支持 callback 方式回调。从 5.4.0 版本废弃该接口的其他回调方式。如果传入了 callback 参数,仅触发 callback 回调。

返回值

返回值 描述
Future<int> 当次接口操作的状态码。0 代表调用成功,具体结果需要实现接口回调;非 0 代表当前接口调用操作失败,不会触发接口回调。详细错误参考错误码。

代码示例

IRCIMIWGetConversationsCallback? callback = IRCIMIWGetConversationsCallback(onSuccess: (List<RCIMIWConversation>? t) {
//...
}, onError: (int? code) {
//...
});

int? ret = await engine?.getConversations(conversationTypesInt, channelId, startTime, count, callback:callback);
              
已复制
1
2
3
4
5
6
7

回调方法

  • onConversationsLoaded

获取会话列表的结果回调

Function(int? code, List<RCIMIWConversationType>? conversationTypes, String? channelId, int? startTime, int? count, List<RCIMIWConversation>? conversations)? onConversationsLoaded;
              
已复制
1

参数说明

参数名 参数类型 描述
code int 接口回调的状态码,0 代表成功,非 0 代表出现异常
conversationTypes List<RCIMIWConversationType> 会话类型集合
channelId String 频道 ID,仅支持超级群使用
startTime int 时间戳(毫秒)
count int 查询的数量
conversations List<RCIMIWConversation> 查询到的会话集合

代码示例

engine?.onConversationsLoaded = (int? code, List<RCIMIWConversationType>? conversationTypes, String? channelId, int? startTime, int? count, List<RCIMIWConversation>? conversations) {
//...
};
              
已复制
1
2
3

获取指定会话

获取某个会话的详细信息。

方法

Future<int> getConversation(RCIMIWConversationType type, String targetId, String? channelId, {IRCIMIWGetConversationCallback? callback});
              
已复制
1

参数说明

参数名 参数类型 描述
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可
callback IRCIMIWGetConversationCallback 获取会话事件回调。SDK 从 5.3.1 版本开始支持 callback 方式回调。从 5.4.0 版本废弃该接口的其他回调方式。如果传入了 callback 参数,仅触发 callback 回调。

返回值

返回值 描述
Future<int> 当次接口操作的状态码。0 代表调用成功,具体结果需要实现接口回调;非 0 代表当前接口调用操作失败,不会触发接口回调。详细错误参考错误码。

代码示例

IRCIMIWGetConversationCallback? callback = IRCIMIWGetConversationCallback(onSuccess: (RCIMIWConversation? t) {
//...
}, onError: (int? code) {
//...
});

int? ret = await engine?.getConversation(type, targetId, channelId, callback:callback);
              
已复制
1
2
3
4
5
6
7

回调方法

  • onConversationLoaded
Function(int? code, RCIMIWConversationType? type, String? targetId, String? channelId, RCIMIWConversation? conversation)? onConversationLoaded;
              
已复制
1

参数说明

参数名 参数类型 描述
code int 接口回调的状态码,0 代表成功,非 0 代表出现异常
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
conversation RCIMIWConversation 获取到的会话

代码示例

engine?.onConversationLoaded = (int? code, RCIMIWConversationType? type, String? targetId, String? channelId, RCIMIWConversation? conversation) {
//...
};
              
已复制
1
2
3

获取未读列表

获取指定类型的含有未读消息的会话列表,支持单聊、群聊、系统会话。获取到的会话列表按照时间倒序排列,置顶会话会排在最前。

方法

Future<int> getUnreadConversations(List<RCIMIWConversationType> conversationTypes, {IRCIMIWGetUnreadConversationsCallback? callback});
              
已复制
1

参数说明

参数名 参数类型 描述
conversationTypes List<RCIMIWConversationType> 支持单聊、群聊、系统会话
callback IRCIMIWGetUnreadConversationsCallback 获取会话列表事件回调。

返回值

返回值 描述
Future<int> 当次接口操作的状态码。0 代表调用成功,具体结果需要实现接口回调;非 0 代表当前接口调用操作失败,不会触发接口回调,详细错误参考错误码。

代码示例

IRCIMIWGetUnreadConversationsCallback? callback = IRCIMIWGetUnreadConversationsCallback(onSuccess: (List<RCIMIWConversation>? t) {
//...
}, onError: (int? code) {
//...
});

int? ret = await engine?.getUnreadConversations(conversationTypesInt, callback:callback);
              
已复制
1
2
3
4
5
6
7

常见问题

Q1: 当用户卸载重新安装后发现会话列表为空或者部分会话丢失
A1: 由于会话列表是从本地数据库获取的, 是在 SDK 内部数据库存储的,所以当用户在卸载的时候会删除本地数据库,导致重新安装后会话列表为空,而会出现部分会话的原因是因为开启了 离线消息补偿 功能,具体操作是在后台购买 多设备消息同步 功能,这个功能里默认涵盖了今天(当天 0 点)的离线消息补偿,所以当用户在新设备登陆会触发离线消息补偿功能,从而获取到部分会话,造成部分会话丢失的错觉。如果想要更多天的离线消息补偿,可 提交工单 修改,最多支持 7 天,设置时间过长,当单用户消息量超大时,可能会因为补偿消息量过大,造成端上处理压力的问题

文档反馈
意见反馈

您的改进建议

意见反馈

问题类型

联系我们

提交工单

技术支持|集成使用|产品方案


商务咨询

7 x 24 小时

为您解答方案与报价问题

131 6185 6839

文档反馈