跳转到内容
Tauri

定位器

将您的窗口放置在已知位置。

此插件是 Tauri 的 electron-positioner 端口。

支持的平台

此插件需要至少 Rust 版本 1.77.2

平台 级别 注意事项
窗户
linux
macos
android
ios

设置

安装位置器插件以开始。

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

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. 为位置器插件设置 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 配置中的权限以启用这些特权。

查看功能概览获取更多信息,以及逐步指南来使用插件权限。

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

默认权限

允许使用moveWindow和处理IconState 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