跳转到内容
Tauri

窗口状态

保存窗口位置和大小,并在应用程序重新打开时恢复它们。

支持的平台

  • Windows
  • Linux
  • macOS

设置

这个插件要求 Rust 版本至少是 1.75

请安装窗口状态插件。

使用项目的包管理器来添加依赖。

npm run tauri add window-state

用法

添加后,当应用程序被关闭时,将记住所有窗口的状态,并在下一次启动时恢复到之前的状态。

你也可以在 JavaScript 和 Rust 中访问窗口状态插件。

JavaScript

你可以使用 saveWindowState 手动保存窗口状态:

import { saveWindowState, StateFlags } from '@tauri-apps/plugin-window-state';
saveWindowState(StateFlags.ALL);

同样,你可以手动从磁盘恢复窗口的状态:

import {
restoreStateCurrent,
StateFlags,
} from '@tauri-apps/plugin-window-state';
restoreStateCurrent(StateFlags.ALL);

Rust

你可以使用由 AppHandleExt 特征暴露的 save_window_state() 方法:

use tauri_plugin_window_state::{AppHandleExt, StateFlags};
// `tauri::AppHandle` 现在有了以下额外的方法
app.save_window_state(StateFlags::all()); // 将所有打开窗口的状态保存到磁盘

同样,你可以使用 WindowExt 特征暴露的 restore_state() 方法从磁盘手动恢复窗口的状态:

use tauri_plugin_window_state::{WindowExt, StateFlags};
// 所有的 `Window` 类型现在都有以下额外的方法
window.restore_state(StateFlags::all()); // 将从磁盘恢复窗口的状态

权限

默认情况下,所有插件命令都被阻止,无法访问。 你必须在你的 capabilities 配置中定义一个权限列表。

更多信息请参见访问控制列表

src-tauri/capabilities/main.json
{
"permissions": [
...,
"window-state:allow-restore-window-state",
"window-state:allow-save-window-state",
]
}
权限描述
window-state:allow-restore-window-state启用 restore_window_state 命令,不需要任何预先配置的作用域。
window-state:deny-restore-window-state拒绝没有任何预配置范围的 restore_window_state 命令。
window-state:allow-save-window-state启用 save_window_state 命令,不需要预先配置作用域。
window-state:deny-save-window-state拒绝没有任何预先配置的作用域的 save_window_state 命令。

© 2024 Tauri Contributors. CC-BY / MIT