Browse Source

✨ feat(tauri): 添加单实例插件的窗口聚焦功能

陈雪 3 weeks ago
parent
commit
c7c1f02a3e
1 changed files with 15 additions and 1 deletions
  1. 15 1
      src-tauri/src/lib.rs

+ 15 - 1
src-tauri/src/lib.rs

@@ -1,5 +1,6 @@
 use std::vec;
 
+use tauri::{AppHandle, Manager};
 use tauri_plugin_sql::{Migration, MigrationKind};
 
 #[cfg_attr(mobile, tauri::mobile_entry_point)]
@@ -11,7 +12,9 @@ pub fn run() {
         kind: MigrationKind::Up,
     }];
     tauri::Builder::default()
-        .plugin(tauri_plugin_single_instance::init())
+        .plugin(tauri_plugin_single_instance::init(|app, _args, _cwd| {
+            let _ = show_window(app);
+        }))
         .plugin(tauri_plugin_upload::init())
         .plugin(tauri_plugin_http::init())
         .plugin(tauri_plugin_store::Builder::new().build())
@@ -24,3 +27,14 @@ pub fn run() {
         .run(tauri::generate_context!())
         .expect("error while running tauri application");
 }
+
+fn show_window(app: &AppHandle) {
+    let windows = app.webview_windows();
+
+    windows
+        .values()
+        .next()
+        .expect("Sorry, no window found")
+        .set_focus()
+        .expect("Can't Bring Window to Focus");
+}