跳到内容
Tauri

Positioner

将窗口定位在众所周知的位置。

此插件是为 Tauri 移植的 electron-positioner

支持的平台

此插件需要 Rust 版本至少为 1.77.2

平台 级别 注释
windows
linux
macos
android
ios

设置

安装 positioner 插件以开始使用。

使用项目的包管理器添加依赖项

npm run tauri add positioner

需要进行其他设置才能使托盘相对位置正常工作。

  1. tray-icon 功能添加到您的 Cargo.toml 文件

    src-tauri/Cargo.toml
    [dependencies]
    tauri-plugin-positioner = { version = "2.0.0", features = ["tray-icon"] }
  2. 为 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 配置中的权限才能启用这些。

有关更多信息,请参阅功能概述,并参阅使用插件权限的分步指南

src-tauri/capabilities/default.json
{
"permissions": [
...,
"positioner:default",
]
}

默认权限

允许 moveWindow 和 handleIconState API

此默认权限集包括以下内容

  • allow-move-window
  • allow-move-window-constrained
  • allow-set-tray-icon-state

权限表

标识符 描述

positioner:allow-move-window

启用 move_window 命令,没有任何预配置的作用域。

positioner:deny-move-window

拒绝 move_window 命令,没有任何预配置的作用域。

positioner:allow-move-window-constrained

启用 move_window_constrained 命令,没有任何预配置的作用域。

positioner:deny-move-window-constrained

拒绝 move_window_constrained 命令,没有任何预配置的作用域。

positioner:allow-set-tray-icon-state

启用 set_tray_icon_state 命令,没有任何预配置的作用域。

positioner:deny-set-tray-icon-state

拒绝 set_tray_icon_state 命令,没有任何预配置的作用域。


© 2025 Tauri 贡献者。CC-BY / MIT