34 lines
1001 B
Rust
34 lines
1001 B
Rust
use tauri::Manager;
|
|
|
|
// 模块声明
|
|
mod commands;
|
|
mod sidecar;
|
|
|
|
use sidecar::SidecarProcess;
|
|
|
|
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
|
pub fn run() {
|
|
tauri::Builder::default()
|
|
.plugin(tauri_plugin_shell::init())
|
|
.setup(|app| {
|
|
// 注册全局状态
|
|
app.manage(SidecarProcess(std::sync::Mutex::new(None)));
|
|
|
|
// 启动 Sidecar 进程
|
|
let app_handle = app.handle().clone();
|
|
sidecar::spawn_sidecar(app_handle);
|
|
|
|
Ok(())
|
|
})
|
|
.invoke_handler(tauri::generate_handler![commands::greet])
|
|
.build(tauri::generate_context!())
|
|
.expect("error while building tauri application")
|
|
.run(|app_handle, event| {
|
|
// 监听应用退出事件,清理 Sidecar 进程
|
|
if let tauri::RunEvent::Exit = event {
|
|
// 只在 Exit 事件时清理,避免重复执行
|
|
sidecar::cleanup_sidecar_process(app_handle);
|
|
}
|
|
});
|
|
}
|