获取会话
客户端 SDK 会根据收发的消息在本地数据库中生成对应会话。您可以从本地数据库获取 SDK 生成的会话列表。
获取会话列表
通过以下接口分页获取 SDK 在本地数据库生成的会话列表。获取到的会话列表按照时间倒序排列,置顶会话会排在最前。
方法
Dart
Future<int> getConversations(List<RCIMIWConversationType> conversationTypes, String? channelId, int startTime, int count, {IRCIMIWGetConversationsCallback? callback});
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
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 代表当前接口调用操作失败,不会触发接口回调。详细错误参考错误码。 |
代码示例
Dart
IRCIMIWGetConversationsCallback? callback = IRCIMIWGetConversationsCallback(onSuccess: (List<RCIMIWConversation>? t) {
//...
}, onError: (int? code) {
//...
});
int? ret = await engine?.getConversations(conversationTypesInt, channelId, startTime, count, callback:callback);
回调方法
- onConversationsLoaded
获取会话列表的结果回调
Dart
Function(int? code, List<RCIMIWConversationType>? conversationTypes, String? channelId, int? startTime, int? count, List<RCIMIWConversation>? conversations)? onConversationsLoaded;
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
code | int | 接口回调的状态码,0 代表成功,非 0 代表出现异常 |
conversationTypes | List<RCIMIWConversationType> | 会话类型集合 |
channelId | String | 频道 ID,仅支持超级群使用。 |
startTime | int | 时间戳(毫秒) |
count | int | 查询的数量 |
conversations | List<RCIMIWConversation> | 查询到的会话集合 |
代码示例
Dart
engine?.onConversationsLoaded = (int? code, List<RCIMIWConversationType>? conversationTypes, String? channelId, int? startTime, int? count, List<RCIMIWConversation>? conversations) {
//...
};
获取指定会话
获取某个会话的详细信息。
方法
Dart
Future<int> getConversation(RCIMIWConversationType type, String targetId, String? channelId, {IRCIMIWGetConversationCallback? callback});
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
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 代表当前接口调用操作失败,不会触发接口回调。详细错误参考错误码。 |
代码示例
Dart
IRCIMIWGetConversationCallback? callback = IRCIMIWGetConversationCallback(onSuccess: (RCIMIWConversation? t) {
//...
}, onError: (int? code) {
//...
});
int? ret = await engine?.getConversation(type, targetId, channelId, callback:callback);
回调方法
- onConversationLoaded
Dart
Function(int? code, RCIMIWConversationType? type, String? targetId, String? channelId, RCIMIWConversation? conversation)? onConversationLoaded;
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
code | int | 接口回调的状态码,0 代表成功,非 0 代表出现异常 |
type | RCIMIWConversationType | 会话类型 |
targetId | String | 会话 ID |
channelId | String | 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。 |
conversation | RCIMIWConversation | 获取到的会话 |
代码示例
Dart
engine?.onConversationLoaded = (int? code, RCIMIWConversationType? type, String? targetId, String? channelId, RCIMIWConversation? conversation) {
//...
};
获取未读列表
获取指定类型的含有未读消息的会话列表,支持单聊、群聊、系统会话。获取到的会话列表按照时间倒序排列,置顶会话会排在最前。