窗口尺寸与持久化——位置保持 + 单例模式
窗口保持(Window Persistence)
配置页面里有一个叫"窗口保持"的开关(复选框,默认勾选)。作用:
当用户手动调整了窗口的位置和大小后,下次打开 APP 时自动恢复到关闭前的状态。
效果举例
假设默认窗口是 800×600,用户手动拉成了 1200×800 并拖到了屏幕右下角:
- 未勾选窗口保持 → 每次启动都回到默认的 800×600、屏幕居中
- 勾选窗口保持 → 下次打开就是 1200×800、右下角位置

什么时候用
几乎所有场景都建议勾选。唯一可能想关掉的情况是:你希望用户每次打开都看到固定尺寸——比如演示用的窗口、特定布局锁定的工具。
单例模式(Single Instance)
另一个叫"单例模式"的开关(复选框,默认勾选)。作用:
当 APP 已经在运行时,再次点击桌面图标不会打开第二个窗口,而是把已有的窗口拉到前台。
效果举例
假设你打包了一个"AI 对话工具"桌面 APP:
- 未勾选单例模式 → 用户可以开 3 个窗口,每个窗口独立加载网页、各自占内存
- 勾选单例模式 → 无论点多少次图标,都只有一个窗口。点图标时如果窗口最小化会自动还原,如果被其他窗口遮住会自动提到最前面
什么时候用
| 场景 | 建议 | 原因 |
|---|---|---|
| 工具类应用(笔记、记账、看板) | ✅ 勾选 | 一个实例足够,重复开浪费资源 |
| 浏览器壳(YouTube、B 站) | ⚠️ 看情况 | 如果用户可能同时看多个频道,可以关 |
| 聊天类应用(Slack、Discord) | ✅ 勾选 | 重复开没意义 |
| 游戏类 | ✅ 勾选 | 游戏通常不支持多开 |
单例模式下的"唤醒"行为
Tauri 的单例机制通常配合:
- 窗口置顶:被唤醒时窗口会自动提到最前面
- 恢复可见:如果之前最小化了,会自动还原
这两个行为是内置的,不需要额外配置。
窗口尺寸字段
配置页面里"窗口大小"显示当前设置的宽度×高度像素值。窗口模式切到"自定义"时可手动编辑,其他模式下显示预设值但不可编辑(切换回自定义后才能改)。
实际生效优先级:
- 用户实际调整的尺寸(如果开了"窗口保持")→ 最高优先级
- 自定义模式下手动填的值
- 各预设模式的默认值
系统级窗口行为
除了这两个开关,PakePlus 打包的 APP 自动具备一些系统级窗口能力:
- 最小化 / 最大化 / 关闭按钮:跟随操作系统原生外观
- 边缘吸附:Windows 11 / macOS 自动支持,拖到屏幕边缘会吸附
- 缩放:按住 Ctrl + 滚轮可以缩放内容(这是 Tauri WebView 的默认行为)
关闭窗口 vs 退出程序
PakePlus 默认行为是:关闭窗口 = 退出程序。这和 Chrome 等浏览器(关闭最后一个标签才退出)不同。
如果需要"关闭窗口但程序仍在后台运行"的托盘模式,需要在 Tauri 高级配置里启用——这属于"核弹级配置",需要手动写 JSON,详见 核弹级高级配置。