Skip to content
Tauri 中文网

窗口状态

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

¥Save window positions and sizes and restore them when the app is reopened.

支持的平台

¥Supported Platforms

This plugin requires a Rust version of at least 1.77.2

Platform Level Notes
windows
linux
macos
android
ios

设置

¥Setup

安装 window-state 插件即可开始使用。

¥Install the window-state plugin to get started.

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

¥Use your project’s package manager to add the dependency:

npm run tauri add window-state

使用

¥Usage

添加窗口状态插件后,所有窗口都会记住应用关闭时的状态,并在下次启动时恢复到之前的状态。

¥After adding the window-state plugin, all windows will remember their state when the app is being closed and will restore to their previous state on the next launch.

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

¥You can also access the window-state plugin in both JavaScript and Rust.

:::tip 提示

窗口创建后会恢复状态,因此为了防止窗口闪烁,你可以在创建窗口时将 visible 设置为 false,插件将在恢复状态时显示窗口。

¥Restoring the state will happen after window creation, so to prevent the window from flashing, you can set visible to false when creating the window, the plugin will show the window when it restores the state

:::

JavaScript

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

¥You can use saveWindowState to manually save the window state:

import { saveWindowState, StateFlags } from '@tauri-apps/plugin-window-state';
// when using `"withGlobalTauri": true`, you may use
// const { saveWindowState, StateFlags } = window.__TAURI__.windowState;
saveWindowState(StateFlags.ALL);

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

¥Similarly you can manually restore a window’s state from disk:

import {
restoreStateCurrent,
StateFlags,
} from '@tauri-apps/plugin-window-state';
// when using `"withGlobalTauri": true`, you may use
// const { restoreStateCurrent, StateFlags } = window.__TAURI__.windowState;
restoreStateCurrent(StateFlags.ALL);

Rust

你可以使用 AppHandleExt 特性公开的 save_window_state() 方法:

¥You can use the save_window_state() method exposed by the AppHandleExt trait:

use tauri_plugin_window_state::{AppHandleExt, StateFlags};
// `tauri::AppHandle` now has the following additional method
app.save_window_state(StateFlags::all()); // will save the state of all open windows to disk

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

¥Similarly you can manually restore a window’s state from disk using the restore_state() method exposed by the WindowExt trait:

use tauri_plugin_window_state::{WindowExt, StateFlags};
// all `Window` types now have the following additional method
window.restore_state(StateFlags::all()); // will restore the window's state from disk

权限

¥Permissions

默认情况下,所有潜在危险的插件命令和范围都会被阻止,无法访问。你必须修改 capabilities 配置中的权限才能启用这些权限。

¥By default all potentially dangerous plugin commands and scopes are blocked and cannot be accessed. You must modify the permissions in your capabilities configuration to enable these.

有关更详细的说明,请参阅 功能概述

¥See the Capabilities Overview for more information and the step by step guide to use plugin permissions.

src-tauri/capabilities/default.json
{
"permissions": [
...,
"window-state:default",
]
}

Default Permission

This permission set configures what kind of operations are available from the window state plugin.

Granted Permissions

All operations are enabled by default.

This default permission set includes the following:

  • allow-filename
  • allow-restore-state
  • allow-save-window-state

Permission Table

Identifier Description

window-state:allow-filename

Enables the filename command without any pre-configured scope.

window-state:deny-filename

Denies the filename command without any pre-configured scope.

window-state:allow-restore-state

Enables the restore_state command without any pre-configured scope.

window-state:deny-restore-state

Denies the restore_state command without any pre-configured scope.

window-state:allow-save-window-state

Enables the save_window_state command without any pre-configured scope.

window-state:deny-save-window-state

Denies the save_window_state command without any pre-configured scope.


Tauri v2.5 中文网 - 粤ICP备13048890号
Nodejs.cn 旗下网站