#tauri-plugin #tauri-app #window #size #position #restore #save

sys tauri-plugin-window-state

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

24 个版本

2.0.0-rc.1 2024 年 8 月 17 日
2.0.0-beta.122024 年 7 月 31 日
2.0.0-beta.32024 年 3 月 21 日
2.0.0-alpha.62023 年 12 月 20 日
0.1.0 2022 年 6 月 19 日

#761 in GUI

Download history 310/week @ 2024-04-27 177/week @ 2024-05-04 317/week @ 2024-05-11 242/week @ 2024-05-18 498/week @ 2024-05-25 359/week @ 2024-06-01 311/week @ 2024-06-08 297/week @ 2024-06-15 307/week @ 2024-06-22 563/week @ 2024-06-29 508/week @ 2024-07-06 697/week @ 2024-07-13 677/week @ 2024-07-20 2266/week @ 2024-07-27 1259/week @ 2024-08-03 925/week @ 2024-08-10

5,239 每月下载量

Apache-2.0 OR MIT

68KB
470

plugin-window-state

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

安装

此插件需要至少 Rust 版本 1.75

我们推荐以下三种一般安装方法。

  1. 使用 crates.io 和 npm(最简单,需要您信任我们的发布流程)
  2. 直接从 Github 使用 git 标签/版本哈希拉取源代码(最安全)
  3. 使用 Git 子模块在此 tauri 项目中安装此仓库,然后使用文件协议导入源代码(最安全,但使用不便)

通过向您的 Cargo.toml 文件添加以下内容安装核心插件

src-tauri/Cargo.toml

[dependencies]
tauri-plugin-window-state = "2.0.0-rc"
# alternatively with Git:
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }

您可以使用您首选的 JavaScript 包管理器安装 JavaScript 客户端绑定

注意:由于大多数 JavaScript 包管理器无法从 git 单一仓库安装包,我们为每个插件提供了只读镜像。这使得安装选项 2 更易于使用。

pnpm add @tauri-apps/plugin-window-state
# or
npm add @tauri-apps/plugin-window-state
# or
yarn add @tauri-apps/plugin-window-state

# alternatively with Git:
pnpm add https://github.com/tauri-apps/tauri-plugin-window-state#v2
# or
npm add https://github.com/tauri-apps/tauri-plugin-window-state#v2
# or
yarn add https://github.com/tauri-apps/tauri-plugin-window-state#v2

用法

首先,您需要将核心插件与 Tauri 进行注册

src-tauri/src/main.rs

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_window_state::Builder::default().build())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

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

可选地,您也可以通过使用 save_window_state() 方法(由 AppHandleExt 特性公开)或通过 JavaScript 来告诉插件保存所有打开窗口的状态到磁盘

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

或通过 JavaScript

import { saveWindowState, StateFlags } from "@tauri-apps/plugin-window-state";

saveWindowState(StateFlags.ALL);

要手动从磁盘恢复窗口状态,您可以调用由 restore_state() 方法(由 WindowExt 特性公开)

use tauri_plugin_window_state::{WindowExt, StateFlags};

// all `Window` types now have the following additional method
window.restore_state(StateFlags::all()); // will restore the windows state from disk

或通过 JavaScript

import {
  restoreStateCurrent,
  StateFlags,
} from "@tauri-apps/plugin-window-state";

restoreStateCurrent(StateFlags.ALL);

贡献

接受 PR。请在提出拉取请求之前务必阅读贡献指南。

合作伙伴

CrabNebula

有关赞助商的完整列表,请访问我们的 网站Open Collective

许可协议

代码:© 2015 - 现在 - The Commons Conservancy 的 Tauri 程序。

适用于适用情况下的 MIT 或 MIT/Apache 2.0。

依赖项

~17–58MB
~882K SLoC