对于macOS中的电子应用程序,app.quit()何时被调用



我是电子的新手,我试图理解起始代码。我对一块代码感到困惑。

app.on('window-all-closed', () => {
if(process.platform !== 'darwin') {
app.quit();
}
});

该代码所做的是,如果所有窗口都关闭,它将终止整个程序,macOS是一个例外。

问题是,macOS没有其他处理程序可以调用app.quit()。所以我想知道在macOS中,如果我们不手动调用app.quit(),当我们按下command + q时,它会自动调用吗?

Electron文档非常好:事件:"窗口全部关闭">

事件:"窗口全部关闭">

当所有窗口都关闭时发出

如果您没有订阅此事件,并且所有窗口都已关闭,则默认行为是退出应用程序;但是,如果您订阅,您控制应用程序是否退出。如果用户按下Cmd+Q,或者开发人员调用app.git((,Electron将首先尝试关闭所有windows,然后发出will quit事件,在这种情况下将不会发出windowallclosed事件。

对于默认OSX行为

在Windows系统上,窗口通常等于应用程序。这意味着当你关闭一个窗口时,你也会关闭应用程序(只要是该应用程序的最后一个打开的窗口(。在…上对于Mac来说,窗口更像是一个文档,而不是应用程序本身。当你关闭一个窗口时,你就关闭了你所在的特定文档正在查看,但应用程序本身仍在运行。–https://www.howtogeek.com/279086/why-do-mac-apps-stay-open-when-i-hit-the-red-x-button/

最新更新