diff --git a/src-tauri/src/core/handle.rs b/src-tauri/src/core/handle.rs index ec590ba2..98ee2658 100644 --- a/src-tauri/src/core/handle.rs +++ b/src-tauri/src/core/handle.rs @@ -522,7 +522,7 @@ impl Handle { #[cfg(target_os = "macos")] impl Handle { pub fn set_activation_policy(&self, policy: tauri::ActivationPolicy) -> Result<(), String> { - let app_handle = self.app_handle(); + let app_handle = Self::app_handle(); if let Some(app_handle) = app_handle.as_ref() { app_handle .set_activation_policy(policy) diff --git a/src-tauri/src/core/sysopt.rs b/src-tauri/src/core/sysopt.rs index 85e53a28..999dc90f 100644 --- a/src-tauri/src/core/sysopt.rs +++ b/src-tauri/src/core/sysopt.rs @@ -152,9 +152,7 @@ impl Sysopt { use anyhow::bail; use tauri_plugin_shell::ShellExt; - let app_handle = Handle::global() - .app_handle() - .ok_or_else(|| anyhow::anyhow!("App handle not available"))?; + let app_handle = Handle::app_handle(); let binary_path = dirs::service_path()?; let sysproxy_exe = binary_path.with_file_name("sysproxy.exe"); @@ -227,9 +225,7 @@ impl Sysopt { use anyhow::bail; use tauri_plugin_shell::ShellExt; - let app_handle = Handle::global() - .app_handle() - .ok_or_else(|| anyhow::anyhow!("App handle not available"))?; + let app_handle = Handle::app_handle(); let binary_path = dirs::service_path()?; let sysproxy_exe = binary_path.with_file_name("sysproxy.exe"); diff --git a/src-tauri/src/core/tray/mod.rs b/src-tauri/src/core/tray/mod.rs index 7f72d09d..a1dcad3e 100644 --- a/src-tauri/src/core/tray/mod.rs +++ b/src-tauri/src/core/tray/mod.rs @@ -300,14 +300,8 @@ impl Tray { /// 更新托盘图标 #[cfg(target_os = "macos")] - pub async fn update_icon(&self, _rate: Option) -> Result<()> { - let app_handle = match handle::Handle::app_handle() { - Some(handle) => handle, - None => { - log::warn!(target: "app", "更新托盘图标失败: app_handle不存在"); - return Ok(()); - } - }; + pub async fn update_icon(&self) -> Result<()> { + let app_handle = handle::Handle::app_handle(); let tray = match app_handle.tray_by_id("main") { Some(tray) => tray, diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index da836d8e..ef7da217 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -20,8 +20,6 @@ use crate::{ }; use config::Config; use once_cell::sync::OnceCell; -#[cfg(target_os = "macos")] -use tauri::Manager; use tauri::{AppHandle, Manager}; #[cfg(target_os = "macos")] use tauri_plugin_autostart::MacosLauncher; @@ -388,7 +386,7 @@ pub fn run() { has_visible_windows ); - handle::Handle::global().init(app_handle.clone()); + handle::Handle::global().init(); if !has_visible_windows { // 当没有可见窗口时,设置为 regular 模式并显示主窗口 diff --git a/src-tauri/src/utils/resolve/dns.rs b/src-tauri/src/utils/resolve/dns.rs index 5d906b4a..52b5fec5 100644 --- a/src-tauri/src/utils/resolve/dns.rs +++ b/src-tauri/src/utils/resolve/dns.rs @@ -2,13 +2,7 @@ pub async fn set_public_dns(dns_server: String) { use crate::{core::handle, utils::dirs}; use tauri_plugin_shell::ShellExt; - let app_handle = match handle::Handle::app_handle() { - Some(handle) => handle, - None => { - log::error!(target: "app", "app_handle not available for DNS configuration"); - return; - } - }; + let app_handle = handle::Handle::app_handle(); log::info!(target: "app", "try to set system dns"); let resource_dir = match dirs::app_resources_dir() {