Electron 应用程序显示和隐藏时是否有事件?

No *_*ing 7 javascript electron

我一直在寻找应用程序显示或隐藏app时的 Electron 事件。我在文档中看到有“browser-window-blur”“browser-window-focus”,但它们并没有达到我想要的效果。

\n\n

我想知道用户何时切换到另一个应用程序或切换回我的应用程序。如果用户在浏览器窗口\xe2\x80\x93\xc2\xa0(包括“开发人员工具”窗口)之间切换,则会触发上述事件。

\n\n
\n\n

代码在main.js

\n\n
app.on(\'browser-window-focus\', () => {\n    if (mainWindow) {\n        console.log(\'browser-window-focus\');\n\n        mainWindow.webContents.send(\'projectMsg\', { "event": "focus" });\n    }\n});\n\napp.on(\'browser-window-blur\', () => {\n    console.log(\'browser-window-blur\');\n    if (mainWindow) {\n        mainWindow.webContents.send(\'projectMsg\', { "event": "blur" });\n    }\n});\n
Run Code Online (Sandbox Code Playgroud)\n

per*_*rgy 7

在我看来,它的工作原理与你所描述的完全一样,所以也许要求有所不同。

这段代码

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})
})
Run Code Online (Sandbox Code Playgroud)

鉴于最初没有关注任何内容,按以下方式工作(在 3.0.3 中):

  • 单击窗口1打印browser-window-focus 1
  • 单击窗口2打印browser-window-blur 1 browser-window-focus 2
  • 单击 devtools 窗口打印browser-window-blur 2 Ignore this case

据我所知,devtool 不包含在这些事件中,对于任何其他聚焦的窗口(包括 devtool),窗口都变得模糊