Как предотвратить множественные экземпляры окна в Electron? - PullRequest
0 голосов
/ 19 октября 2019

Я проверяю обновления в течение определенного промежутка времени. Всякий раз, когда обновления не удается, я отображаю окно с уведомлением об ошибке. Проблема в том, что каждый раз, когда создается новое окно.

Я уже пробовал

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?
}

Ответы [ 2 ]

0 голосов
/ 20 октября 2019

Начиная с 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()
  }
})
0 голосов
/ 20 октября 2019
app.requestSingleInstanceLock()
app.on('second-instance', (event, argv, cwd) => {
  /* print some msg or sth */
})

См. https://electronjs.org/docs/api/app#event-second-instance

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...