
Chatto 移动端与桌面端完整指南Capacitor iOS App、Electron 桌面客户端与游戏截图共享【免费下载链接】chattoA fully-featured team and group chat application that you can easily selfhost.项目地址: https://gitcode.com/gh_mirrors/chatt/chattoChatto 是一款功能完整的团队与群组聊天应用支持自托管部署。除了浏览器和 PWAChatto 还提供Capacitor 打包的 iOS 移动 App和Electron 桌面客户端桌面端在 macOS 上甚至内置了基于 ScreenCaptureKit 的原生游戏截图与共享能力。本文带你快速上手这三大客户端形态。1. 一个前端多个平台Chatto 客户端架构总览Chatto 的核心理念是浏览器、桌面端、移动端共用同一份前端代码原生层只做窄能力扩展。桌面端Electron 直接嵌入未修改的前端构建产物运行在固定安全源chatto://desktop上移动端Capacitor 将共享前端打包进 iOS 壳运行在capacitor://localhost登录、多服务器注册、会话恢复等行为在三端保持一致无需为桌面或手机写第二套 UI。这个架构决策记录在 ADR-099 和 FDR-034 中。2. Chatto Mobile三步跑起你的 iOS App Chatto Mobile 目前是实验性 iOS 客户端打包了共享前端不内置任何 Chatto 后端。2.1 一键构建与运行在仓库根目录执行mise mobile-ios-build mise mobile-ios-openmobile-ios-build会构建前端把 SPA 壳和资源复制进 iOS 工程并产出未签名的模拟器 Appmobile-ios-open刷新打包内容并打开 Xcode选择 iPhone 模拟器运行即可前端有改动后重新执行mise mobile-ios-sync再运行。真机调试只需在 Xcode 的Signing Capabilities中选择你有权限的开发团队签名密钥不存放在代码仓库中。完整说明见 apps/mobile/README.md。2.2 移动端登录系统级身份验证Chatto Mobile 的登录流程是移动端最特别的地方App 使用系统 Web 身份验证会话展示服务器自带的登录页你看到的就是服务器管理的那个界面PKCE 校验、令牌交换和会话注册仍由共享前端完成客户端标识为内置 OAuth 客户端回调地址固定在 App 私有协议上不绕过证书校验、不支持不安全 HTTP。⚠️ 注意登录要求服务器包含移动端 OAuth 注册Chatto 0.5 内置且必须使用 HTTPS。2.3 当前限制了解后再使用暂无原生推送通知、来电集成或分享扩展语音通话仍走共享 Web 客户端锁屏后继续通话是后续需求无离线消息存储分发方式为本地 Xcode 构建和手动 TestFlight 上传。细节可阅读 FDR-048: Chatto MobileApp 标识与 WebView 配置见 capacitor.config.json。3. Chatto DesktopElectron 桌面客户端快速上手 Chatto Desktop 把官方前端打包成 Electron 应用拥有独立的版本号和发布节奏chatto-desktop/vX.Y.Z标签。3.1 运行、测试与打包桌面客户端mise desktop-dev # 构建共享前端并在 Electron 中打开 mise test-desktop # 运行桌面端测试 mise desktop-build # 打包当前平台的安装包构建产物输出到apps/desktop/dist/。CI 会同时构建并校验 macOS、Windows、Linux 三种包正式发布版使用 Developer ID 签名 Apple 公证macOS以及 Microsoft Artifact SigningWindows。完整流程见 apps/desktop/README.md。3.2 桌面端登录与数据持久化桌面端使用浏览器同款window.open()弹窗完成PKCE 保护的 OAuth 登录远端服务器继续拥有登录与授权页所有状态已注册服务器、偏好、服务工作者、会话持久化在chatto://desktop安全源的应用数据目录中重启不丢失chatto://desktop已被 Chatto 0.5 服务器识别为内置客户端无需任何服务端源配置即可使用 Bearer 令牌访问 API 与实时通道。3.3 语音通话与媒体权限语音通话、摄像头、屏幕共享使用 Electron 内置 Chromium 的 WebRTC 实现摄像头和麦克风请求走系统权限弹窗屏幕共享则弹出原生来源选择器渲染进程禁用 Node 集成并处于沙箱中外部导航只允许 OAuth 弹窗或系统浏览器打开。4. macOS 游戏截图与共享原生捕获助手 这是桌面端最硬核的特性macOS 构建内嵌一个原生 ScreenCaptureKit 捕获助手实现游戏级屏幕共享。4.1 功能亮点窗口捕获发布所选游戏窗口的视频 该应用自身音频到 LiveKit 通话且助手会自动排除 Chatto 自己的窗口避免把通话回声重新共享出去整屏捕获仅视频防止远端通话回放被采集回传自适应质量提供 1920 / 1280 / 640 像素三档最大边长60/60/30 fps并用 dynacast 停止无人消费的质量层级静态预览选择器共享控制中展示来源窗口的 JPEG 预览源枚举可取消、限时一次性。4.2 使用前提要求说明macOS 版本15 或更新低于此版本自动回退到浏览器来源选择器权限在系统设置 → 隐私与安全性 → 屏幕与系统音频录制中授权构建macOS 构建自动包含捕获助手及其固定的 LiveKit 框架捕获助手的完整说明与诊断命令见 macos-capture-probe/README.mdElectron 侧的来源解析与质量校验逻辑在 game_capture.mjs。 设计细节捕获的音视频不经过Electron IPC 或 Chromium而是由原生助手以独立的 LiveKit 伴生连接直接发布从而获得更短、更高效的媒体路径。这一决策记录在 FDR-034 的设计决策 7 与 8。5. 快速参考三个客户端对比维度浏览器 / PWAChatto DesktopChatto Mobile技术栈SvelteKit 前端Electron 嵌入同一前端Capacitor 嵌入同一前端登录页面内 OAuth 弹窗OAuth 弹窗窗口PKCE系统身份验证会话PKCE屏幕共享浏览器来源选择器macOS 原生窗口/整屏捕获暂不支持推送通知Web Push依赖渲染进程存活暂未实现当前状态正式实验性pre-1.0实验性仅 iOS6. 延伸阅读移动端设计与限制FDR-048-chatto-mobile.md移动端架构决策ADR-099-capacitor-mobile-client.md桌面端行为与决策FDR-034-chatto-desktop.md移动端工程配置apps/mobile/桌面端工程与脚本apps/desktop/无论是通勤路上的 iPhone还是深夜开黑时的 MacChatto 都能让你的团队聊天无缝衔接 【免费下载链接】chattoA fully-featured team and group chat application that you can easily selfhost.项目地址: https://gitcode.com/gh_mirrors/chatt/chatto创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考