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

时间:2019-11-12 15:58:26

标签: javascript electron

我是电子新手,所以我尝试理解入门代码。我对一块代码感到困惑。

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

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

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

1 个答案:

答案 0 :(得分:0)

Electron电子文档非常好:Event: 'window-all-closed'

  

事件:“全封闭窗口”

     

关闭所有窗口时发出。

     

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

关于默认的OSX行为

  

在Windows系统上,窗口通常等于应用程序。这个   意味着当您关闭窗口时,您也会关闭应用程序   (只要是打开该应用程序的最后一个窗口)。上   在Mac上,与应用程序本身相比,窗口更像是文档。   关闭窗口时,您关闭的是以前的特定文档   看,但是应用程序本身一直在运行。   – https://www.howtogeek.com/279086/why-do-mac-apps-stay-open-when-i-hit-the-red-x-button/