Как вы заставляете электронное приложение иметь один экземпляр? - PullRequest
3 голосов
/ 28 января 2020

Я пытаюсь не допустить, чтобы мое электронное приложение могло запускать более одного окна одновременно. Я уже пробовал это, но он делает первое открытое окно закрытым вместо второго открытого окна, и он полностью перестает работать для третьего окна:

app.requestSingleInstanceLock();
app.on('second-instance', () => {
    app.quit();
});

Старшее app.makeSingleInstance также выбрасывает ошибка, поскольку она устарела. Что мне делать вместо этого?

1 Ответ

2 голосов
/ 28 января 2020

Обновление: пример в документации выглядит как лучший образец для подражания! Т.е. вызов app.quit(), когда app.requestSingleInstanceLock() возвращает ложь


Из документов :

Это событие будет отправлено внутри первичного экземпляр вашего приложения, когда второй экземпляр был выполнен и вызывает app.requestSingleInstanceLock ().

Т.е. именно поэтому app.quit() закрывает первое окно.

... Обычно приложения реагируют на это, делая свое основное окно сфокусированным и не минимизированным.

Так что, если win является экземпляром BrowserWindow, который открыл ваш основной процесс, вы можете do:

win.show()
win.focus()

Я полагаю, что вы также ничего не могли сделать в обработчике «второго экземпляра»: это событие просто для информации, сообщающее, что пользователь пытался открыть ваше приложение во второй раз.

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