[英]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.