- Android
- iOS
- JavaScript
- Flutter
- 鸿蒙
分页获取会话信息列表。
接口定义
/**
* 分页获取会话信息列表,结果按照会话时间倒序排列(新的在前,旧的在后)
* @param count 拉取数量
* @param timestamp 拉取时间戳(传 0 表示当前时间)
* @param direction 拉取方向
* @return 会话信息列表
*/
List<ConversationInfo> getConversationInfoList(int count,
long timestamp,
JIMConst.PullDirection direction);
示例代码
List<ConversationInfo> list = JIM.getInstance().getConversationManager().getConversationInfoList(20, 0, JIMConst.PullDirection.OLDER);
分页获取会话信息列表。
接口定义
/// 分页获取会话信息列表,结果按照会话时间倒序排列(新的在前,旧的在后)
/// - Parameters:
/// - count: 拉取数量
/// - ts: 拉取时间戳(传 0 表示当前时间)
/// - direction: 拉取方向
- (NSArray<JConversationInfo *> *)getConversationInfoListByCount:(int)count
timestamp:(long long)ts
direction:(JPullDirection)direction;
示例代码
NSArray *array = [JIM.shared.conversationManager getConversationInfoListByCount:20 timestamp:0 direction:JPullDirectionOlder];
参数说明
| 名称 | 类型 | 必填 | 默认值 | 描述 | 版本 |
|---|---|---|---|---|---|
| option | Object | 否 | 1.0.0 | ||
| option.count | Number | 否 | 50 | 获取指定数量的会话列表,单次最多获取 100 个会话 | 1.0.0 |
| option.order | Number | 否 | FORWARD | 获取方向,支持获取更早的会话或者更(四声)新的会话,配合 time 属性一起使用 | 1.0.0 |
| option.time | Number | 否 | 0 | 从指定时间点开始获取会话,可以配合 order 获取新老会话 | 1.0.0 |
回调说明
| 属性 | 类型 | 描述 | 版本 |
|---|---|---|---|
| result | Object | 查询结果 | 1.0.0 |
| result.conversations | Array | 会话数组,单个会话对象结构请查看 Conversation | 1.0.0 |
| result.isFinished | Boolean | 标志会话是否获取完成 | 1.0.0 |
示例代码
/*
假设当前用户有 199 个会话,每页获取 50 条,会话列表按时间倒序排列,实现会话列表分页逻辑如下:
1、加载第 1 页获取参数: { count: 50, time: 0 }
2、加载第 2 页获取参数: { count: 50, time: '获取第 1 页会话数组中最小的 sortTime(数组下标最大的会话)' }
3、加载第 3 页获取参数: { count: 50, time: '获取第 2 页会话数组中最小的 sortTime(数组下标最大的会话)' }
4、加载第 4 页获取参数: { count: 50, time: '获取第 3 页会话数组中最小的 sortTime(数组下标最大的会话)' }
5、结束:isFinished 返回 true,停止加载
*/
jim.getConversations().then((result) => {
let { conversations, isFinished } = result;
console.log(isFinished, conversations);
})
分页获取会话信息列表。
接口定义
//callback 定义
export type ConversationsCallback = (code:number,convers:ConversationInfo[])=>void
/**
* 分页获取会话信息列表,结果按照会话时间倒序或正序排列
* @param count 拉取数量
* @param startTime 拉取的开始时间戳(传 0 表示当前时间)
* @param isPositive 拉取方向,true为正序,false为倒序
* @return 会话信息列表
*/
queryConversations(count:number,startTime:number,isPositive:boolean,callback:ConversationsCallback)
示例代码
JuggleIm.instance.getConversationManager().queryConversations(10,0,false,(code,convers)=>{
})
分页获取会话信息列表,假设当前用户有 199 个会话,每页获取 50 条,会话列表按时间倒序排列,实现会话列表分页逻辑如下:
1、加载第 1 页获取参数: { count: 50, timestamp: 0 }
2、加载第 2 页获取参数: { count: 50, timestamp: '获取第 1 页会话数组中最小的
sortTime(数组下标最大的会话)' }
3、加载第 3 页获取参数: { count: 50, timestamp: '获取第 2 页会话数组中最小的
sortTime(数组下标最大的会话)' }
4、加载第 4 页获取参数: { count: 50, timestamp: '获取第 3 页会话数组中最小的
sortTime(数组下标最大的会话)' }
5、结束:不足 50 个会话时停止加载会话
参数说明
GetConversationInfoOption option = GetConversationInfoOption();
| 名称 | 类型 | 必填 | 默认值 | 描述 | 版本 |
|---|---|---|---|---|---|
| option.count | int | 否 | 50 | 获取指定数量的会话列表,单次最多获取 100 个会话 | 0.6.3 |
| option.timestamp | int | 否 | 0 | 从指定时间点开始获取会话,可以配合 direction 获取新老会话 | 0.6.3 |
| option.direction | int | 否 | 0 | 获取方向,支持获取更早的会话或者更(四声)新的会话,配合 timestamp 属性一起使用 | 0.6.3 |
示例代码
GetConversationInfoOption option = GetConversationInfoOption();
option.count = 20;
option.timestamp = 0;
option.direction = 1; // 0: 拉取 timestamp 之后的会话,1: 拉取 timestamp 之前的会话
List<ConversationInfo> conversations = await JuggleIm.instance.getConversationInfoListByOption(option);