Электрон, как открыть приложение из трея вместо запуска нового? - PullRequest
1 голос
/ 17 января 2020

Как создать один экземпляр приложения Electron? Если он уже запущен в трее и пользователь запускает его снова, как открыть запущенное приложение из трея вместо запуска нового?

Ответы [ 2 ]

3 голосов
/ 17 января 2020

спасибо! Я нашел это в документах, https://electronjs.org/docs/api/app#apprequestsingleinstancelock:

const { app } = require('electron')
let myWindow = null

const gotTheLock = app.requestSingleInstanceLock()

if (!gotTheLock) {
  app.quit()
} else {
  app.on('second-instance', (event, commandLine, workingDirectory) => {
    // Кто-то пытался запустить второй экземпляр, мы должны сфокусировать наше окно.
    if (myWindow) {
      if (myWindow.isMinimized()) myWindow.restore()
      myWindow.focus()
    }
  })

  // Создать myWindow, загрузить остальную часть приложения, и т.д.
  app.on('ready', () => {
  })
}
1 голос
/ 17 января 2020

Используйте app.makeSingleInstance(), чтобы убедиться, что пользователь не открывает несколько экземпляров электрона. Как только вы поделитесь своим кодом, я внесу изменения, чтобы показать вам, как правильно его реализовать.

var shouldQuit = app.makeSingleInstance(function(commandLine, workingDirectory) {
  // Someone tried to run a second instance, we should focus our window.
  if (myWindow) {
    if (myWindow.isMinimized()) myWindow.restore();
    myWindow.focus();
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...