如何防止 Electron 中窗口出现多个实例?

neo*_*ith 3 javascript electron

我正在检查特定时间间隔内的更新。每当更新失败时,我都会显示一个带有错误通知的窗口。问题是每次创建一个新窗口时。

我已经尝试过了

let window = null;

if(window === null) {
    window = new BrowserWindow();
    window.loadURL('notification.html');
}

else {
    window.restore(); // But that is only for minimizing
    // WHAT DO I PUT HERE?
}
Run Code Online (Sandbox Code Playgroud)

小智 6

从 Electron 5.0.x 开始,单实例 API 发生了变化。你可以这样使用它。

/** Check if single instance, if not, simply quit new instance */
let isSingleInstance = app.requestSingleInstanceLock()
if (!isSingleInstance) {
  app.quit()
}

// Behaviour on second instance for parent process- Pretty much optional
app.on('second-instance', (event, argv, cwd) => {
  if (window) {
    if (window.isMinimized()) window.restore()
    window.focus()
  }
})
Run Code Online (Sandbox Code Playgroud)