用 Flutter 原生客户端补齐 Open WebUI 移动端体验
Open WebUI 在移动端认证、流式、截图输入等场景失效,Flutter 原生界面解决这些边缘问题
方案简介
Conduit 是 Open WebUI 的原生移动客户端,用 Flutter 构建,支持 iOS 与 Android。Open WebUI 在桌面上体验优秀,但在移动端会在边缘场景失效:反向代理后的认证、应用切后台后中断的流式响应、把截图送进 prompt、从主屏幕快速开始聊天等。Conduit 专为填补这一空白而构建。它采用本地优先设计:聊天记录首先保存在你的设备上,没有任何请求经过维护者运营的后端。首次启动时用户选择连接方式,可连接自托管的 Open WebUI 服务器获得完整功能集,也可完全脱离服务器使用。
亮点与能力
- 基于 WebSocket 的逐 token 流式输出,响应增长时对话记录保持位置
- 语法高亮代码块,支持复制与预览
- Mermaid 图表原生渲染
- LaTeX 与数学公式支持
- 可展开的推理、工具调用与代码执行区块
- 内联引用、来源卡片与后续建议
- Chart.js 图表嵌入
- 跨会话搜索、文件夹整理、置顶、临时会话
- 文件上传、多模态 prompt、剪贴板图片粘贴、音频附件
- 笔记自动保存、置顶、AI 生成标题、离线可用
- 语音输入与完整语音通话模式
- iOS 与 Android 主屏幕小组件、App Intents 与 Shortcuts
- 浅色/深色/跟随系统主题、五套强调色、Material 与 Cupertino 自适应
组成与分工
- Flutter:构建 iOS/Android 原生界面的框架,非 WebView 套壳
- Open WebUI:自托管服务器端,提供聊天、文件夹、笔记、频道、工作区、工具、网络搜索、图像生成等完整功能
- WebSocket:承载逐 token 流式传输与交互式终端会话
- Mermaid:原生渲染图表
- Chart.js:嵌入图表展示
前置要求
使用 Open WebUI 连接方式需要一个可访问的自托管 Open WebUI 服务器。真实部署环境可能包含反向代理与各种认证方式,Conduit 覆盖 Open WebUI 提供的每一种认证路径:
实施步骤
1. 安装应用
从 Google Play 或 Apple App Store 安装 Conduit(应用名 Conduit - Open WebUI Client)。
2. 选择连接方式
首次启动时应用会询问如何连接:
| 方式 | 说明 |
| --- | --- |
| Open WebUI | 连接你的自托管服务器,获得完整功能集 |
| Direct | 直连 OpenAI 兼容端点、Ollama、OpenRouter |
| Apple On-Device / PCC | iOS 本地或苹果私有云模型 |
| Hermes | 连接自托管 agent |
可先选一种,之后随时添加其他方式,并跳过不需要的登录。
3. 配置服务器连接
填入你的 Open WebUI 服务器地址并完成认证。支持用户名密码、LDAP、手动 JWT、SSO 与 OAuth。在 Open WebUI 中已配置的 Direct 连接会自动带入。
使用与配置要点
- 服务器依赖的功能(频道、笔记、网络搜索、图像生成、开关过滤器、终端)只会在你的部署暴露它们时出现;无权限的工作区板块则完全不显示
- 终端功能通过 WebSocket 提供交互式会话与文件浏览器,仅在服务器暴露时显示
- 通过分享面板可将其他应用的内容直接注入 prompt
- 主屏幕小组件支持新建聊天、麦克风、相机、照片与剪贴板入口
注意事项与常见问题
- 聊天记录本地优先,不经维护者后端路由
- 14 种语言界面,含简体与繁体中文
- 若服务器未开启某功能,对应界面不会出现,这是设计而非故障
- Apple On-Device 与 PCC 连接方式仅限 iOS 且需 Apple Intelligence;详见各连接方式说明
优缺点
- ✓ 本地优先,不经第三方后端
- ✓ 原生渲染非 WebView
- ✕ 部分功能依赖服务器开启
出处
本方案挖掘自开源项目 cogwheel0/conduit,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。