Positioner
將您的視窗定位在眾所周知的位置。
此外掛程式是 electron-positioner 的 Tauri 連接埠。
支援平台
此外掛程式需要至少 1.77.2 的 Rust 版本
平台 | 層級 | 備註 |
---|---|---|
windows | ||
linux | ||
macos | ||
android | | |
ios | |
設定
安裝 positioner 外掛程式以開始使用。
使用專案的套件管理器來新增依賴項
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 Guest 綁定
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 相對位置運作。
-
將
tray-icon
功能新增至您的Cargo.toml
檔案src-tauri/Cargo.toml [dependencies]tauri-plugin-positioner = { version = "2.0.0", features = ["tray-icon"] } -
為 positioner 外掛程式設定
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 guest 綁定取得
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
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 Contributors. CC-BY / MIT