electron 防止多开 只允许一个实例允许并在重复打开后显示第一个实例
在使用electron开始的时候,需要只允许一个实例允许
并且在重复打开后关闭重复程序后显示已经打开的程序获取焦点
实现方法很简单,要用到app.requestSingleInstanceLock
看代码
// main.js 防止多开 key:设置一个唯一的key
if (!app.requestSingleInstanceLock({ key: 'mykey' })) {
// 如果获取单实例锁失败,表示应用程序已经在运行,可以关闭当前实例或执行其他逻辑
app.quit();
} else {
// 如果获取单实例锁成功,表示这是第一个实例,可以继续执行应用程序逻辑
app.on('second-instance', (event, commandLine, workingDirectory) => {
// 当尝试启动第二个实例时触发
// 可以处理如窗口焦点、命令行参数等逻辑
// 焦点切换到已运行的实例
if (mainWindow) {
//显示隐藏
if (!mainWindow.isVisible()) mainWindow.show();
//恢复最小化
if (mainWindow.isMinimized()) mainWindow.restore();
//获取焦点
mainWindow.focus();
}
});
}
将上面的代码加入到main.js里