定位器
将你的窗口放置在众所周知的位置。
🌐 Position your windows at well-known locations.
此插件是 electron-positioner 为 Tauri 的移植版本。
🌐 This plugin is a port of electron-positioner for Tauri.
🌐 Supported Platforms
This plugin requires a Rust version of at least 1.77.2
| Platform | Level | Notes |
|---|---|---|
| windows | ||
| linux | ||
| macos | ||
| android | | |
| ios | |
🌐 Setup
安装定位器插件即可开始使用。
🌐 Install the positioner plugin to get started.
使用项目的包管理器添加依赖:
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 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
需要进行其他设置才能使托盘相对位置正常工作。
🌐 Additional setup is required to get tray-relative positions to work.
-
将
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");}
🌐 Usage
插件的 API 可通过 JavaScript 来宾绑定获得:
🌐 The plugin’s APIs are available through the JavaScript guest bindings:
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 扩展:
🌐 You can import and use the Window trait extension directly through Rust:
use tauri_plugin_positioner::{WindowExt, Position};
let mut win = app.get_webview_window("main").unwrap();let _ = win.as_ref().window().move_window(Position::TopRight);🌐 Permissions
默认情况下,所有潜在危险的插件命令和作用域都会被阻止,无法访问。你必须在 capabilities 配置中修改权限以启用这些功能。
🌐 By default all potentially dangerous plugin commands and scopes are blocked and cannot be accessed. You must modify the permissions in your capabilities configuration to enable these.
有关更多信息,请参见功能概览,有关使用插件权限的分步指南,请参见分步指南。
🌐 See the Capabilities Overview for more information and the step by step guide to use plugin permissions.
{ "permissions": [ ..., "positioner:default", ]}Default Permission
Allows the moveWindow and handleIconState APIs
This default permission set includes the following:
allow-move-windowallow-move-window-constrainedallow-set-tray-icon-state
Permission Table
| Identifier | Description |
|---|---|
|
|
Enables the move_window command without any pre-configured scope. |
|
|
Denies the move_window command without any pre-configured scope. |
|
|
Enables the move_window_constrained command without any pre-configured scope. |
|
|
Denies the move_window_constrained command without any pre-configured scope. |
|
|
Enables the set_tray_icon_state command without any pre-configured scope. |
|
|
Denies the set_tray_icon_state command without any pre-configured scope. |
Tauri 中文网 - 粤ICP备13048890号
Nodejs.cn 旗下网站