组件概述
ConversationList 是一个基于 SwiftUI 构建的会话列表组件,主要用于展示和管理用户的聊天会话。该组件提供了完整的会话列表功能,包括会话展示、交互操作等核心能力。
会话列表 | 会话操作 |
![]() | ![]() |
组件集成
ConversationList 是属于 TUIKit SwiftUI 的一个组件,集成 TUIKit SwiftUI 即可获取并使用 ConversationList,集成方法请参考文档 TUIKit SwiftUI 里的集成步骤。
组件构成
ConversationList 组件对外仅暴露了会话列表的初始化方法,其他逻辑均封装在 ConversationList 中。
对外方法
方法名 | 参数 | 描述 |
init | onConversationClick: @escaping (ConversationInfo) -> Void | 初始化组件,设置会话点击回调,必填。 |
| config: ConversationActionConfigProtocol = ChatConversationActionConfig() | 初始化组件,设置会话操作菜单项,选填。 |
| customActions: [ConversationCustomAction] = [] | 初始化组件,设置自定义会话操作选项,选填。 |
基础用法
ConversationList 组件可直接初始化使用,需要实现 onConversationClick 回调。
参数名 | 类型 | 描述 |
onConversationClick | (ConversationInfo) -> Void | 会话点击回调,当用户点击某个会话 cell 时触发 |
示例代码如下:
import AtomicXimport SwiftUIstruct ContentView: View {var body: some View {ConversationList(onConversationClick: { conversation in// 这里建议导航到聊天页面})}}
自定义组件
您可以自定义会话列表的操作项。方法如下。
方式 1. 局部隐藏会话操作项
初始化 ConversationList 时传入自定义 config,设置是否展示某些菜单项:
struct CustomConversationView: View {var body: some View {ConversationList(onConversationClick: { conversation in// 点击会话 cell 跳转},// 不展示 ClearHistoryconfig: ChatConversationActionConfig(isSupportDelete: true, isSupportPin: true, isSupportClearHistory: false))}}
目前支持的菜单项开关操作
操作类型 | 描述 |
isSupportDelete | 是否支持删除会话 |
isSupportPin | 是否支持置顶会话 |
isSupportClearHistory | 是否支持清空历史消息 |
方式 2. 局部增加会话操作项
初始化 ConversationList 时传入
customActions,ConversationList 内部会在默认的 action 底部添加您增加的自定义选项:参数名 | 类型 | 描述 |
customActions | [ConversationCustomAction] | 自定义会话操作,当用户点击会话操作菜单时展示 |
示例代码如下:
struct CustomConversationView: View {var body: some View {ConversationList(onConversationClick: { conversation inonShowMessage?(NavigationInfo(conversation: conversation))},// Custom actionscustomActions: [ConversationCustomAction(title: "Share") { conversation inprint("Share conversation: \\(conversation.title ?? "")")},]).conversationActions([.delete, .pin, .clearHistory]).environmentObject(themeState)}}
方式 3. 全局配置方式
通过
AppBuilderConfig 进行全局配置:// 在应用启动时配置,不包含则不支持AppBuilderConfig.shared.conversationActionList = [.delete, // 支持删除.pin, // 支持置顶.clearHistory // 清空会话消息]// 接下来再初始化 ConversationList,所有的 ConversationList 都会遵守上面 conversationActionList 的配置ConversationList(onConversationClick: { conversation in// 这里可以导航到聊天页面})
注意:
局部配置的优先级大于全局配置。
自定义效果如下图所示:
会话操作(默认选项) | 会话操作(隐藏 Delete 选项) | 会话操作(新增 Share 选项) |
![]() | ![]() | ![]() |




