产品动态
公告
聊天消息列表 | 消息长按菜单 |
![]() | ![]() |
方法名 | 参数 | 描述 |
init | conversationID: String | 初始化组件,设置会话 ID。 |
| config: MessageListConfigProtocol & MessageActionConfigProtocol = ChatMessageListConfig() | 初始化组件,设置消息列表样式。 |
| locateMessage: MessageInfo? = nil | 初始化组件,设置定位消息。通常用于从消息搜索结果页跳转消息页同时定位到目标消息。 |
| onUserClick: ((String) -> Void)? = nil | 初始化组件,设置点击用户头像跳转响应事件。 |
| customActions: [MessageCustomAction] = [] | 初始化组件,设置自定义消息菜单选项。 |
import AtomicXimport SwiftUIstruct ContentView: View {var body: some View {MessageList(conversationID: "conversation_123",onUserClick: { userID in// 点击用户头像响应事件})}}
MessageListConfigProtocol 协议来创建完全自定义的样式:struct MyCustomConfig: MessageListConfigProtocol & MessageActionConfigProtocol{let alignment: Int = 0let isShowTimeMessage: Bool = truelet isShowLeftAvatar: Bool = truelet isShowLeftNickname: Bool = truelet isShowRightAvatar: Bool = truelet isShowRightNickname: Bool = truelet isSupportCopy: Bool = false// ... 其他属性}// 使用自定义样式MessageList(conversationID: "conversation_123",config: MyCustomConfig())
MessageListConfigProtocol 协议属性说明:属性名 | 类型 | 描述 | 备注 |
alignment | Int | 消息对齐方式 | 1:左对齐。 2:右对齐。 3:左右对齐。 |
isShowTimeMessage | Bool | 是否显示时间消息 | 控制是否显示消息时间戳。 |
isShowLeftAvatar | Bool | 是否显示左侧头像 | 控制接收消息时是否显示发送者头像。 |
isShowLeftNickname | Bool | 是否显示左侧昵称 | 控制接收消息时是否显示发送者昵称。 |
isShowRightAvatar | Bool | 是否显示右侧头像 | 控制发送消息时是否显示自己头像。 |
isShowRightNickname | Bool | 是否显示右侧昵称 | 控制发送消息时是否显示自己昵称。 |
isShowTimeInBubble | Bool | 是否在气泡内显示时间 | 控制时间戳是否显示在消息气泡内部。 |
cellSpacing | CGFloat | 消息间距 | 控制相邻消息之间的间距。 |
isShowSystemMessage | Bool | 是否显示系统消息 | 控制是否显示系统通知类消息。 |
isShowUnsupportMessage | Bool | 是否显示不支持的消息 | 控制是否显示不支持类型的消息。 |
horizontalPadding | CGFloat | 水平内边距 | 控制消息列表的左右内边距。 |
avatarSpacing | CGFloat | 头像间距 | 控制头像与消息内容之间的间距。 |
MessageActionConfigProtocol协议属性说明:属性名 | 类型 | 描述 |
isSupportCopy | Bool | 消息操作菜单是否支持复制。 |
isSupportDelete | Bool | 消息操作菜单是否支持删除。 |
isSupportRecall | Bool | 消息操作菜单是否支持撤回。 |
isSupportCopy、isSupportDelete、isSupportRecall显示操作项:struct CustomMessageView: View {var body: some View {MessageList(conversationID: "conversation_123",config: ChatMessageListConfig(isSupportCopy:false))}}
customActions,MessageList 内部会在默认的 action 底部添加您增加的自定义选项:struct CustomMessageView: View {var body: some View {MessageList(conversationID: "conversation_123",// 新增自定义操作customActions: [MessageCustomAction(title: "Share", iconName: "forward_icon_figma", systemIconFallback: "square.and.arrow.up") { _ inprint("share Message")}])}}
AppBuilderConfig 进行全局配置:// 在应用启动时配置AppBuilderConfig.shared.messageActionList = [.copy, // 支持复制.delete, // 支持删除.recall // 支持撤回]// 接下来再初始化 MessageList,所有的 MessageList 都会遵守上面的配置MessageList(conversationID: "conversation_123")
消息列表操作(默认选项) | 消息列表操作(隐藏【复制】选项) | 消息列表操作(新增【分享】选项) |
![]() | ![]() | ![]() |
文档反馈