Как узнать, находится ли электронное приложение на переднем плане? - PullRequest
1 голос
/ 02 апреля 2019

У меня есть требование, когда я хочу выполнить действие внутри приложения для электронов, только когда оно находится на переднем плане.

Это приложение с электронной реакцией.При монтировании компонента я хочу запланировать периодическую задачу, которая запускается только тогда, когда приложение находится в фокусе или используется пользователем.И приостановить задачу, когда приложение переходит в фоновый режим.

Как определить, что приложение Electron находится на переднем плане?

Ответы [ 2 ]

1 голос
/ 02 апреля 2019

Вы можете использовать метод isFocused из BrowserWindow.Чтобы получить собственное окно BrowserWindow, вы можете сделать это:

remote.BrowserWindow.getAllWindows();

Это вернет все окна вашего приложения.Таким образом, чтобы получить первое / основное окно, вы можете деконструировать массив следующим образом:

const [yourBrowserWindow] = remote.BrowserWindow.getAllWindows();
console.log(yourBrowserWindow.isFocused());
1 голос
/ 02 апреля 2019

Вы можете использовать focus / blur события в вашем BrowserWindow, чтобы получать уведомления, когда приложение сфокусировано / не сфокусировано.

mainWindow = new BrowserWindow({})

mainWindow.on('focus', () => {
    console.log('window got focus')
})

mainWindow.on('blur', () => {
    console.log('window blur')
})

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

Это предполагает, что у вас есть одно окно приложения.Если у вас есть несколько, вам нужно расширить проверку, чтобы охватить все ваши окна.

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