问题描述
我一直在寻找当 应用程序 显示或隐藏时的 Electron app
事件.我在文档中看到有 'browser-window-blur' 和 'browser-window-focus' 但是那些不做我想做的事.
I have been looking for Electron app
events for when the application is shown or hidden. I see in the docs that there is 'browser-window-blur' and 'browser-window-focus' but those do not do what I want.
我想知道用户何时切换到另一个应用程序或切换回我的应用程序.如果用户在浏览器窗口(包括开发者工具"窗口)之间切换,则会触发上述事件.
I would like to know when the user has switched to another application or switched back to my app. The above events get triggered if the user switches between browser windows – including the "developer's tools" window.
main.js
中的代码
app.on('browser-window-focus', () => {
if (mainWindow) {
console.log('browser-window-focus');
mainWindow.webContents.send('projectMsg', { "event": "focus" });
}
});
app.on('browser-window-blur', () => {
console.log('browser-window-blur');
if (mainWindow) {
mainWindow.webContents.send('projectMsg', { "event": "blur" });
}
});
推荐答案
在我看来和你描述的完全一样,所以可能要求不同.
It seems to me that it works exactly as you described, so maybe the requirements are different.
此代码
const {app, BrowserWindow} = require('electron')
app.on('browser-window-focus', (event, win) => {
console.log('browser-window-focus', win.webContents.id)
})
app.on('browser-window-blur', (event, win) => {
if (win.webContents.isDevToolsFocused()) {
console.log('Ignore this case')
} else {
console.log('browser-window-blur', win.webContents.id)
}
})
app.once('ready', () => {
new BrowserWindow()
new BrowserWindow().webContents.openDevTools({detach: true})
})
考虑到最初没有重点关注,以下列方式工作(在 3.0.3 中):
works the following way (in 3.0.3) given that nothing is focused initially:
- 点击窗口
1
打印browser-window-focus 1
- 点击窗口
2
打印browser-window-blur 1 browser-window-focus 2
- 点击devtools窗口打印
browser-window-blur 2
忽略这种情况
- Clicking on window
1
printsbrowser-window-focus 1
- Clicking on window
2
printsbrowser-window-blur 1 browser-window-focus 2
- Clicking on devtools window prints
browser-window-blur 2
Ignore this case
据我所知,这些事件中不包含 devtool,对于任何其他聚焦的窗口(包括 devtool),窗口会变得模糊
So as far as I see devtool is not included in these events, windows are getting blurred for any other window focused (including devtool)
这篇关于是否有显示和隐藏 Electron 应用程序的事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!