定位器
将您的窗口放置在已知位置。
此插件是 Tauri 的 electron-positioner 端口。
支持的平台
此插件需要至少 Rust 版本 1.77.2
平台 | 级别 | 注意事项 |
---|---|---|
窗户 | ||
linux | ||
macos | ||
android | | |
ios | |
设置
安装位置器插件以开始。
使用您项目的包管理器添加依赖项
npm run tauri add positioner
yarn run tauri add positioner
pnpm tauri add positioner
deno task tauri add positioner
bun tauri add positioner
cargo 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
需要额外的设置才能使托盘相关位置生效。
-
将
tray-icon
功能添加到您的Cargo.toml
文件中src-tauri/Cargo.toml [dependencies]tauri-plugin-positioner = { version = "2.0.0", features = ["tray-icon"] } -
为位置器插件设置
on_tray_event
src-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 特性扩展
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和处理IconState API。
allow-move-window
allow-move-window-constrained
allow-set-tray-icon-state
权限表
标识符 | 描述 |
---|---|
|
启用move_window命令,无需任何预配置作用域。 |
|
拒绝move_window命令,无需任何预配置作用域。 |
|
启用move_window_constrained命令,无需任何预配置作用域。 |
|
拒绝move_window_constrained命令,无需任何预配置作用域。 |
|
启用set_tray_icon_state命令,无需任何预配置作用域。 |
|
拒绝set_tray_icon_state命令,无需任何预配置作用域。 |
© 2025 Tauri 贡献者。CC-BY / MIT