我正在使用金牛座和金牛座插件定位器。我按照文档进行了设置:网址:main.rs
fn main() {
...
tauri::Builder::default()
.plugin(tauri_plugin_positioner::init()) <- Initialised plugin
.on_system_tray_event(|app, event| {
tauri_plugin_positioner::on_tray_event(app, &event); <- Required for tray locations
match event {
SystemTrayEvent::LeftClick { position: _, size: _, .. } => {
...
},
_ => {}
}
})
...
app.js from React frontend:
import { move_window, Position } from 'tauri-plugin-positioner-api'
function App () {
move_window(Position.TrayBottomRight)
...
我还更新了cargo.toml文件,以包括系统托盘特性,因为这显然是必要的:
tauri-plugin-positioner = { version = "1.0", features = ["system-tray"] }
我尝试过将其作为“Rust only”,其中通过www.example.com进行定位main.rs,但它产生了进一步的错误。我得到的当前错误是:thread 'tokio-runtime-worker' panicked at 'Tray position not set'
我已经研究过这个,但文档似乎非常有限。它似乎是Electron版本的镜像,在Electron版本中,它们在move_window(Position.TrayBottomRight, traybounds)
中指定了一个traybounds参数,但由于参数是意外的,所以它会出错。我唯一的想法是,这是因为我的.on_system_tray_event
设置,但我不知道如何重写它。有谁能给我指出正确的方向或者指出我做错了什么吗(对rust & tauri来说是个新手)。
1条答案
按热度按时间whlutmcx1#
您尝试在启动时将应用程序窗口移动到系统托盘图标的位置,甚至在用户与托盘交互之前。这是没有意义的,因为托盘图标可能在该点甚至不可见,并且用户不会期望应用程序在托盘附近打开。要澄清的是:系统托盘是屏幕右下角图标的集合。
相反,您应该将窗口移动逻辑移动到事件处理程序中,该事件处理程序在用户单击托盘中的图标后打开应用程序窗口:
如果在用户单击任务栏图标时无法打开窗口,您可以咨询:I am trying to create a new window using Tauri 1.2, Rust, React, and Typescript. I am facing some issues