diff --git a/src-tauri/src/core/tray/mod.rs b/src-tauri/src/core/tray/mod.rs index bcb93b4b..bc244d5a 100644 --- a/src-tauri/src/core/tray/mod.rs +++ b/src-tauri/src/core/tray/mod.rs @@ -68,7 +68,6 @@ impl Tray { pub fn create_systray(&self) -> Result<()> { let app_handle = handle::Handle::global().app_handle().unwrap(); - let tray_incon_id = TrayIconId::new("main"); // 创建初始菜单 let initial_menu = create_tray_menu( @@ -80,7 +79,7 @@ impl Tray { )?; // 使用 TrayIconBuilder 构建托盘 - let _tray = tauri::tray::TrayIconBuilder::::with_id(tray_incon_id) + let tray = tauri::tray::TrayIconBuilder::::with_id(TrayIconId::new("main")) .menu(&initial_menu) // 先设置菜单 .show_menu_on_left_click(false) // 再禁用左键菜单 .on_tray_icon_event(move |tray, event| { diff --git a/src-tauri/src/feat.rs b/src-tauri/src/feat.rs index b9a2e784..9ec5c133 100644 --- a/src-tauri/src/feat.rs +++ b/src-tauri/src/feat.rs @@ -14,7 +14,7 @@ use anyhow::{bail, Result}; use reqwest_dav::list_cmd::ListFile; use serde_yaml::{Mapping, Value}; use std::fs; -use tauri::Manager; +use tauri::{Manager, tray::TrayIcon}; use tauri_plugin_clipboard_manager::ClipboardExt; use tauri_plugin_window_state::{AppHandleExt, StateFlags}; @@ -146,9 +146,14 @@ pub fn quit(code: Option) { let _ = window.close(); } + // 移除系统托盘图标 + if let Some(tray) = app_handle.tray_by_id("main") { + let _ = tray.set_icon(None); + } + // 后台执行所有清理工作 let app_handle_clone = app_handle.clone(); - tauri::async_runtime::spawn(async move { + tauri::async_runtime::block_on(async move { // 1. 发送停止内核指令 let _ = CoreManager::global().stop_core().await; @@ -162,7 +167,7 @@ pub fn quit(code: Option) { log::info!(target: "app", "Cleanup tasks completed in background"); }); - // 主线程立即退出 + // 主线程退出 println!("Exiting application with code: {:?}", code); log::info!(target: "app", "Exiting application with code: {:?}", code); app_handle.exit(code.unwrap_or(0)); diff --git a/src-tauri/tauri.windows.conf.json b/src-tauri/tauri.windows.conf.json index a52e646b..bfbb8547 100644 --- a/src-tauri/tauri.windows.conf.json +++ b/src-tauri/tauri.windows.conf.json @@ -19,12 +19,5 @@ "template": "./packages/windows/installer.nsi" } } - }, - "app": { - "windows": [], - "trayIcon": { - "iconPath": "icons/tray-icon.ico", - "iconAsTemplate": true - } } }