Process 进程插件
Process 插件提供进程管理能力,如重启应用和退出应用。框架已注册(tauri_plugin_process::init())并授予 process:default 权限(包含退出与重启)。
基本用法
import { relaunch, exit } from '@tauri-apps/plugin-process'
// 重启应用
await relaunch()
// 退出应用(退出码 0 表示正常退出)
await exit(0)
常见场景
更新后重启
框架的更新弹窗 src/components/ui/UpdateModal.tsx 就是这样用的:下载安装完成后,用户点「重启应用」时调用 relaunch()。
import type { Update } from '@tauri-apps/plugin-updater'
import { relaunch } from '@tauri-apps/plugin-process'
async function updateAndRestart(update: Update) {
await update.downloadAndInstall()
await relaunch() // 重启应用,完成更新
}
托盘菜单退出
Rust 侧退出不需要 Process 插件,直接调用 AppHandle::exit 即可,框架托盘菜单就是这么做的:
// src-tauri/src/tray.rs
.on_menu_event(|app, event| match event.id.as_ref() {
"show" => {
crate::services::main_window_placement::show_main(app, "托盘菜单");
}
"quit" => {
app.exit(0);
}
_ => {}
})
框架中点窗口关闭按钮只会隐藏到托盘(lib.rs 拦截了 CloseRequested),真正退出要走托盘「退出」或前端 exit()。
确认退出
import { exit } from '@tauri-apps/plugin-process'
import { Modal } from 'antd'
function handleQuit() {
Modal.confirm({
title: '确认退出',
content: '确定要退出应用吗?',
onOk: () => exit(0),
})
}