Repolode
exyte

exyte/Chat

一个 iOS SwiftUI 聊天界面框架,支持自定义消息单元和内置媒体选择器。

Star
1,893
Fork
341
未关闭 Issue
0
最近提交
20天前

这是什么?

Chat 是一个 Swift 包,为 SwiftUI 应用提供开箱即用的聊天界面。它负责分页消息列表、输入栏和发送流程,网络请求与数据存储由应用自行实现。用户发送消息时,库会以草稿的形式回调应用的闭包,由应用决定如何投递。

消息气泡和输入视图都可以用 SwiftUI 自定义,同一个聊天中还能让自定义样式与默认样式混用。库内置消息菜单、长按上下文菜单和滑动操作,支持回复、编辑和删除。消息可包含富文本或 Markdown、图片和视频、语音录制、链接预览、Giphy 的 GIF 与贴纸、任意文件,以及静态位置或实时位置共享。

项目面向 iOS 17 及以上版本,通过 Swift Package Manager 分发,并附带 Firestore 与模拟机器人两个示例工程。

核心功能

  • 01分页消息列表,发送时通过闭包交由应用处理网络请求
  • 02通过 SwiftUI 视图构建器自定义消息单元和输入视图
  • 03内置照片与视频选择器,支持多选和相机拍摄
  • 04长按菜单支持回复、编辑和删除,可替换为自定义菜单
  • 05支持文本、媒体、语音、带预览的链接、GIF、文件和位置消息

适用场景

  • 为使用 SwiftUI 开发的 iOS 应用添加应用内消息功能
  • 在已有后端之上搭建带自定义气泡样式的聊天界面
  • 无需从零开发选择器,即可在对话中发送照片、视频和文件
  • 在消息功能中实现用户之间的实时位置共享

快速上手

  1. 1

    通过 Swift Package Manager 使用仓库地址添加依赖

  2. 2

    导入 ExyteChat 并用你的消息创建 ChatView

使用前须知

  • 仅支持 iOS,基于 SwiftUI 构建。
  • CocoaPods 支持在 2.4.2 版本后已弃用。

标签

常见问题

Chat 是什么?
一个 iOS SwiftUI 聊天界面框架,支持自定义消息单元和内置媒体选择器。 Chat 是一个 Swift 包,为 SwiftUI 应用提供开箱即用的聊天界面。它负责分页消息列表、输入栏和发送流程,网络请求与数据存储由应用自行实现。用户发送消息时,库会以草稿的形式回调应用的闭包,由应用决定如何投递。
Chat 可以免费使用吗?用的什么许可证?
Chat 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
Chat 还在维护吗?
活跃维护中。Chat 最近一次提交是在 2026年10月1日。
Chat 适合用来做什么?
为使用 SwiftUI 开发的 iOS 应用添加应用内消息功能 在已有后端之上搭建带自定义气泡样式的聊天界面 无需从零开发选择器,即可在对话中发送照片、视频和文件 在消息功能中实现用户之间的实时位置共享
Chat 怎么安装和运行?
通过 Swift Package Manager 使用仓库地址添加依赖 导入 ExyteChat 并用你的消息创建 ChatView
在哪里获取 Chat?
源代码和安装说明在 GitHub 上:https://github.com/exyte/Chat

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目