跳转到内容
Tauri

单实例

GitHub crates.io
API Reference

使用 Single Instance 插件确保在任意时刻只运行一个 Tauri 应用实例。

支持的平台

此插件需要至少 Rust 版本 1.77.2

平台 级别 备注
windows
linux
macos
android
ios

设置

开始使用前,请安装 Single Instance 插件。

使用项目包管理器添加依赖项

npm run tauri add single-instance

用法

插件已经安装并初始化,它应立即正常工作。然而,我们还可以使用 init() 方法来增强其功能。

插件 init() 方法接受一个闭包,当新应用程序实例启动并被插件关闭时调用该闭包。闭包有三个参数

  1. app: 应用程序的 AppHandle
  2. args: 用户传递给此新实例的参数列表。
  3. cwd: 当前工作目录,表示从该目录启动了新的应用程序实例。

因此,闭包看起来如下所示

.plugin(tauri_plugin_single_instance::init(|app, args, cwd| {
// Write your code here...
}))

关注新实例

默认情况下,当在应用程序已运行的情况下启动新实例时,不会采取任何操作。要使用户尝试打开新实例时聚焦于正在运行的实例的窗口,请修改回调闭包如下所示

src-tauri/src/lib.rs
use tauri::{AppHandle, Manager};
pub fn run() {
let mut builder = tauri::Builder::default();
#[cfg(desktop)]
{
builder = builder.plugin(tauri_plugin_single_instance::init(|app, args, cwd| {
let _ = app.get_webview_window("main")
.expect("no main window")
.set_focus();
}));
}
builder
.run(tauri::generate_context!())
.expect("error while running tauri application");
}

© 2025 Tauri 贡献者。CC-BY / MIT