定位器
将你的窗口定位到常用位置。
此插件是 electron-positioner 的 Tauri 移植版。
此插件需要 Rust 版本至少为 **1.77.2**
| 平台 | 级别 | 备注 |
|---|---|---|
| Windows | ||
| Linux | ||
| macOS | ||
| Android | | |
| iOS | |
安装 positioner 插件即可开始使用。
使用你的项目包管理器添加依赖项
npm run tauri add positioneryarn run tauri add positionerpnpm tauri add positionerdeno task tauri add positionerbun tauri add positionercargo tauri add positioner-
在
src-tauri文件夹中运行以下命令,将插件添加到项目的Cargo.toml依赖项中cargo add tauri-plugin-positioner --target 'cfg(any(target_os = "macos", windows, target_os = "linux"))' -
修改
lib.rs以初始化插件src-tauri/src/lib.rs #[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() {tauri::Builder::default().setup(|app| {#[cfg(desktop)]app.handle().plugin(tauri_plugin_positioner::init());Ok(())}).run(tauri::generate_context!()).expect("error while running tauri application");} -
使用您首选的 JavaScript 包管理器安装 JavaScript 访客绑定
npm install @tauri-apps/plugin-positioneryarn add @tauri-apps/plugin-positionerpnpm add @tauri-apps/plugin-positionerdeno add npm:@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", features = ["tray-icon"] } -
为 positioner 插件设置
on_tray_eventsrc-tauri/src/lib.rs pub fn run() {tauri::Builder::default()// This is required to get tray-relative positions to work.setup(|app| {#[cfg(desktop)]{app.handle().plugin(tauri_plugin_positioner::init());tauri::tray::TrayIconBuilder::new().on_tray_icon_event(|tray_handle, event| {tauri_plugin_positioner::on_tray_event(tray_handle.app_handle(), &event);}).build(app)?;}Ok(())}).run(tauri::generate_context!()).expect("error while running tauri application");}
该插件的 API 可通过 JavaScript 客户端绑定使用。
import { moveWindow, Position } from '@tauri-apps/plugin-positioner';// when using `"withGlobalTauri": true`, you may use// const { moveWindow, Position } = window.__TAURI__.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", ]}默认权限
允许 moveWindow 和 handleIconState API
此默认权限集包括以下内容
允许移动窗口允许受约束的窗口移动允许设置托盘图标状态
权限表
| 标识符 | 描述 |
|---|---|
|
|
启用 move_window 命令,不带任何预配置范围。 |
|
|
禁用 move_window 命令,不带任何预配置范围。 |
|
|
启用 move_window_constrained 命令,不带任何预配置范围。 |
|
|
禁用 move_window_constrained 命令,不带任何预配置范围。 |
|
|
启用 set_tray_icon_state 命令,不带任何预配置范围。 |
|
|
禁用 set_tray_icon_state 命令,不带任何预配置范围。 |
© 2025 Tauri 贡献者。CC-BY / MIT