桌面端必懂基础
理解 Tauri 桌面应用的核心概念:窗口、命令、权限、存储和更新
你将学到
- 桌面应用和普通网页应用有什么本质区别
- Tauri 的 7 个核心概念分别是什么、为什么要关心
- 浏览器预览和 Tauri 原生窗口各自的边界
- 改造模板时应该按什么顺序动手
- 新手最容易踩的几个坑
桌面应用是什么
桌面应用就是"一个带系统能力的本地窗口"。界面还是用 React 写,后端还是复用 01MVP Web/API,但多了一层本地 runtime:读文件、打开目录、托盘常驻、自动更新、系统权限和安装包。
最容易低估的一件事:桌面端不是套个壳就完事。只要你要发给真实用户,本地权限、存储位置、签名、公证和更新都得认真搞。
核心分工很简单:
- 界面仍然是前端 -- React 负责窗口里的页面、按钮、表单和数据展示。
- 系统能力要走 Tauri -- 文件、托盘、打开目录、进程和权限,不能当普通网页能力处理。
- 发布是工程问题 -- DMG、EXE、签名、公证、更新端点,都要在发布前纳入验收。
一张图看懂桌面端
React 界面 --> Runtime Adapter --> Tauri Command --> 操作系统
页面/表单/状态 浏览器和 Tauri 的分界 调用本地能力 文件/权限/更新关键是中间两层。普通网页没有 Tauri runtime,不能随便读写用户电脑。模板把"界面"和"系统能力"分开,这样调试时更容易定位问题出在哪一层。
先搞懂这 7 个概念
Tauri 官方文档把桌面应用拆成前端、Rust 后端、配置和能力边界几部分。你不用一开始就精通 Rust,但要知道系统能力不能散落在页面里。下面这张表帮你快速建立直觉:
| 概念 | 新手理解方式 | 为什么重要 |
|---|---|---|
| Tauri | 把 Web 前端变成桌面应用的框架 | 让 React 界面拥有本地窗口和系统能力 |
| Window | 用户看到的应用窗口 | 尺寸、标题、全屏、关闭行为都要配置 |
| Command | 前端请求本地能力的入口 | 例如打开 app data 目录、读写配置、调用系统功能 |
| Capability | Tauri 的权限清单 | 限制前端能调用哪些本地能力,不给的就调不了 |
| App Data | 应用的本地数据目录 | 放偏好设置、缓存、离线资料,用户删不掉 |
| Keychain | 系统级安全存储 | 放 token、敏感凭据,比文件存储安全得多 |
| Updater | 自动更新机制 | 用户安装后不应该每次手动下载安装包 |
先记住一句话:Capability 控制边界,Command 是通道,App Data 和 Keychain 管存储,Updater 管后续迭代。
浏览器预览 vs Tauri 原生窗口
开发时有两个模式,各管各的:
浏览器预览适合看页面布局、调按钮和表单、检查 Tailwind 样式、让没有 Rust 环境的人先看 UI。但浏览器里没有真实 Tauri runtime,模板会用 fallback 存偏好。
Tauri 原生窗口必须验证本地 command 是否可用、capabilities 是否放行、托盘和窗口行为是否正常、打包后的安装包是否能启动。
浏览器能跑通不等于桌面端完成。浏览器只能说明 UI 和网络请求大概没问题;Tauri command、系统权限、安装包和自动更新必须在原生窗口或打包产物里验。
发布前会遇到的账号和证书
桌面端可以很快跑起 UI,但公开分发时会遇到平台信任问题。用户电脑会问:这个安装包是谁发的、有没有被篡改、能不能自动更新。
| 名称 | 用途 | 什么时候准备 |
|---|---|---|
| Apple Developer Program | macOS 签名、公证、Gatekeeper 信任 | 准备公开发 macOS 安装包前 |
| Windows 代码签名证书 | 给 .exe / .msi 签名,降低安全警告 | 准备公开发 Windows 安装包前 |
| 文件服务器 | 托管安装包和更新文件 | 做下载页或自动更新前 |
内部测试可以先跳过签名和商店,直接生成安装包给自己或团队验。但只要面向真实用户,签名、公证和更新路径就要进入发布计划。
改造顺序
当你准备把模板改成自己的产品时,按这个顺序来:
先改应用身份 -- 产品名、identifier、窗口标题、图标、Bundle 信息和安装包显示名。这些改完,应用看起来就像你自己的了。
再接 Web/API -- 配置 VITE_DESKTOP_SERVER_URL,验证 health、登录、profile 和会员状态都走通。
再加本地能力 -- 每新增一个系统能力,都同步更新 Tauri command、capability、前端 adapter 和验收说明。
最后做发布工程 -- 签名、公证、安装包、自动更新端点和多平台 QA 一起处理。
常见坑
把所有 Tauri 调用写进页面 -- 应该放进 runtime adapter,页面只调用清晰的方法。这样换平台时改一个地方就行。
本地数据乱放 -- 偏好和缓存放 app data,敏感凭据后续接 Keychain。不要什么文件都往用户桌面扔。
忽略签名和自动更新 -- 真实分发前要准备证书、公证、更新端点和回滚方案。这些不是"以后再说"的事。
下一步
对桌面端有了整体印象后,去 快速开始 把项目跑起来,实际看看浏览器预览和 Tauri 原生窗口分别长什么样。
想深入架构细节可以看 项目结构 和 Runtime 与权限。
官方参考
想和其他创造者交流?
这篇文档有问题?