会话列表自定义
会话列表控制需要展示的会话类型
SDK 会话列表默认仅支持单聊和群聊两种会话。
您可以通过 setSupportedTypes 方法配置会话列表展示的会话类型。需要在会话列表展示前设置,最多可以支持单聊、群聊、系统会话。
接口定义
TypeScript
/**
* 设置支持的会话类型
* @param types 会话类型数组
*/
setSupportedTypes(types: ConversationType[]): void
参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
types | ConversationType[] | 是 | 会话类型数组,可选值:ConversationType.Private(单聊)、ConversationType.Group(群聊)、ConversationType.System(系统会话) |
示例代码
TypeScript
// 读取会话列表当前的配置
let config = RongIM.getInstance().conversationListService().getConversationListConfig()
// 设置会话列表仅展示单聊
config.setSupportedTypes([ConversationType.Private])
// 更新会话列表配置
RongIM.getInstance().conversationListService().setConversationListConfig(config)
会话列表组件自定义聚合展示
您可以通过为 ConversationListComponent 组件设置 dataProcessor 参数,实现更灵活的会话列表数据源管理。
提示
- 从
1.7.2版本开始支持。 - 一旦使用该参数,将会覆盖前述通过
setSupportedTypes配置的会话类型展示方式。
接口定义
TypeScript
/**
* 会话列表数据处理器接口
*/
export interface DataProcessor {
/**
* 支持的会话类型
*/
supportedTypes?: ConversationType[];
/**
* 自定义获取会话列表的方法
*/
onFetchConversationList?: (time: number) => Promise<List<Conversation>>;
/**
* 会话数据过滤方法
*/
onConversationFilter?: (item: Conversation) => boolean;
}
参数说明
DataProcessor
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
supportedTypes | ConversationType[] | 否 | 支持的会话类型数组,用于筛选展示的会话类型 |
onFetchConversationList | (time: number) => Promise<List<Conversation>> | 否 | 自定义获取会话列表的方法,参数 time 为时间戳,用于分页加载 |
onConversationFilter | (item: Conversation) => boolean | 否 | 会话过滤方法,返回 true 表示显示该会话,返回 false 表示过滤该会话 |
使用示例
示例 1:按会话类型筛选
TypeScript
// 仅展示单聊会话
ConversationListComponent({dataProcessor: {
supportedTypes: [ConversationType.Private]
}})
// 仅展示群聊会话
ConversationListComponent({dataProcessor: {
supportedTypes: [ConversationType.Group]
}})