mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 06:43:44 +08:00
refactor: improve proxy retrieval and add window destruction method
This commit is contained in:
parent
baa535b609
commit
772ecdd3b0
@ -4,13 +4,21 @@ use crate::module::mihomo::MihomoManager;
|
|||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn get_proxies() -> CmdResult<serde_json::Value> {
|
pub async fn get_proxies() -> CmdResult<serde_json::Value> {
|
||||||
let mannager = MihomoManager::global();
|
let mannager = MihomoManager::global();
|
||||||
mannager.refresh_proxies().await.unwrap();
|
let proxies = mannager
|
||||||
Ok(mannager.get_proxies())
|
.refresh_proxies()
|
||||||
|
.await
|
||||||
|
.map(|_| mannager.get_proxies())
|
||||||
|
.or_else(|_| Ok(mannager.get_proxies()));
|
||||||
|
proxies
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn get_providers_proxies() -> CmdResult<serde_json::Value> {
|
pub async fn get_providers_proxies() -> CmdResult<serde_json::Value> {
|
||||||
let mannager = MihomoManager::global();
|
let mannager = MihomoManager::global();
|
||||||
mannager.refresh_providers_proxies().await.unwrap();
|
let providers = mannager
|
||||||
Ok(mannager.get_providers_proxies())
|
.refresh_providers_proxies()
|
||||||
|
.await
|
||||||
|
.map(|_| mannager.get_providers_proxies())
|
||||||
|
.or_else(|_| Ok(mannager.get_providers_proxies()));
|
||||||
|
providers
|
||||||
}
|
}
|
||||||
|
@ -41,6 +41,18 @@ impl Handle {
|
|||||||
window
|
window
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn destroy_window(&self) -> Result<(), String> {
|
||||||
|
if let Some(window) = self.get_window() {
|
||||||
|
log_err!(window.close());
|
||||||
|
}
|
||||||
|
if let Some(window) = Self::global().get_window() {
|
||||||
|
if let Some(webview) = window.get_webview_window("main") {
|
||||||
|
log_err!(webview.destroy());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
pub fn refresh_clash() {
|
pub fn refresh_clash() {
|
||||||
if let Some(window) = Self::global().get_window() {
|
if let Some(window) = Self::global().get_window() {
|
||||||
log_err!(window.emit("verge://refresh-clash-config", "yes"));
|
log_err!(window.emit("verge://refresh-clash-config", "yes"));
|
||||||
|
@ -194,18 +194,11 @@ pub async fn patch_verge(patch: IVerge, not_save_file: bool) -> Result<()> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Handle lite mode switch
|
// Handle lite mode switch
|
||||||
if lite_mode.is_some() {
|
if let Some(enable) = lite_mode {
|
||||||
if let Some(window) = handle::Handle::global().get_window() {
|
if enable {
|
||||||
if lite_mode.unwrap() {
|
handle::Handle::global().destroy_window().ok();
|
||||||
// 完全退出 webview 进程
|
|
||||||
window.close()?; // 先关闭窗口
|
|
||||||
let app_handle = handle::Handle::global().app_handle().unwrap();
|
|
||||||
if let Some(webview) = app_handle.get_webview_window("main") {
|
|
||||||
webview.destroy()?; // 销毁 webview 进程
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
resolve::create_window(); // 重新创建窗口
|
resolve::create_window();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user