我是电子的新手,我试图理解起始代码。我对一块代码感到困惑。
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/