繁体   English   中英

使用Electron时关闭所有应用程序窗口

[英]Closing all app windows when using Electron

我正在学习在Electron中编写JavaScript。 我有两个窗户。 主窗口和儿童窗口。 当主窗口关闭在Windows计算机上选择X时,我希望它关闭整个应用程序,包括子窗口。 以下行适用于Mac PC。

mainWindow.on('closed', () => app.quit());

为windows pcs做同样事情的正确方法是什么?

app.quit()是执行此操作的正确功能。

从文档中引用( https://github.com/electron/electron/blob/master/docs/api/app.md

尝试关闭所有窗口。 before-quit事件将首先发出。 如果所有窗口都成功关闭,将发出will-quit事件,默认情况下应用程序将终止。

此方法可确保正确执行所有beforeunload和unload事件处理程序。 窗口可能通过在beforeunload事件处理程序中返回false来取消退出。

如果您在按钮单击时直接关闭应用程序而不是关闭窗口 - >收听事件 - >并退出应用程序,则可以更正Windows中的行为

const app = require('electron').remote.app;
const close = document.getElementById('myCloseButton');
close.on('click',function(){
  app.quit();
});

注意: app.exit()也存在,但它不发送上面提到的事件,因此只应在必要时使用它。

我在main.js中处理它:

// create two windows
let mainWindow = new BrowserWindow();
let backgroundWindow = new BrowserWindow();

将函数公开给渲染器(在本例中为“mainWindow”)以关闭应用程序:

 exports.closeAppWindow = function(){
    backgroundWindow.close();
    mainWindow.close();
}

如上面引用的文档所述:

如果所有窗口都成功关闭,将发出will-quit事件,默认情况下应用程序将终止。

然后应用程序关闭,因为两个窗口都已关闭。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM