定位器(Positioner)
把窗口放在你熟悉的地方。
这个插件是 electron-positioner 的 Tauri 版本。
支持的平台
- Windows
- Linux
- macOS
设置
这个插件要求 Rust 版本至少是 1.75
请安装定位器插件。
使用项目的包管理器来添加依赖。
npm run tauri add positioner
yarn run tauri add positioner
pnpm tauri add positioner
bun tauri add positioner
cargo tauri add positioner
-
在你的
Cargo.toml
文件中添加以下内容来安装定位器插件。src-tauri/Cargo.toml [dependencies]tauri-plugin-positioner = "2.0.0-rc"# 或者使用 Git:tauri-plugin-positioner = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } -
修改
lib.rs
来初始化插件。src-tauri/src/lib.rs fn run() {tauri::Builder::default().plugin(tauri_plugin_positioner::init()).run(tauri::generate_context!()).expect("error while running tauri application");} -
使用你喜欢的 JavaScript 包管理器安装 JavaScript Guest 绑定。
npm install @tauri-apps/plugin-positioneryarn add @tauri-apps/plugin-positionerpnpm add @tauri-apps/plugin-positionerbun add @tauri-apps/plugin-positioner
需要额外的设置才能使托盘相对位置工作。
-
在你的
Cargo.toml
文件中添加tray-icon
功能。src-tauri/Cargo.toml [dependencies]tauri-plugin-positioner = { version = "2.0.0-rc", features = ["tray-icon"] } -
为定位器插件设置
on_tray_event
。src-tauri/src/lib.rs fn run() {tauri::Builder::default().plugin(tauri_plugin_positioner::init())// This is required to get tray-relative positions to work.setup(|app| {TrayIconBuilder::new().on_tray_icon_event(|app, event| {tauri_plugin_positioner::on_tray_event(app.app_handle(), &event);}).build(app)?;Ok(())}).run(tauri::generate_context!()).expect("error while running tauri application");}
用法
插件的 API 可以通过 JavaScript Guest 绑定获得。
import { moveWindow, Position } from '@tauri-apps/plugin-positioner';
moveWindow(Position.TopRight);
你可以直接通过 Rust 导入和使用 Window trait 扩展。
use tauri_plugin_positioner::{WindowExt, Position};
let mut win = app.get_webview_window("main").unwrap();let _ = win.as_ref().window().move_window(Position::TopRight);
权限
默认情况下,所有插件命令都被阻止,无法访问。你必须在你的 capabilities
配置中定义一个权限列表。
更多信息请参见访问控制列表。
{ "permissions": [ ..., "positioner:default", ]}
权限 | 描述 |
---|---|
positioner:allow-move-window | 在没有预先配置的作用域的情况下启用 move_window 命令。 |
positioner:deny-move-window | 拒绝没有任何预配置范围的 move_window 命令。 |
positioner:default | 允许 move_window 命令。 |
© 2024 Tauri Contributors. CC-BY / MIT