我正在学习在Electron中编写JavaScript。我有两个窗口,一个主窗口和一个子窗口。当在Windows计算机上选择X关闭主窗口时,我希望它能关闭整个应用程序,包括子窗口。下面这行代码适用于Mac PC。
mainWindow.on('closed', () => app.quit());
什么是在Windows PC上执行相同操作的正确方法?
我正在学习在Electron中编写JavaScript。我有两个窗口,一个主窗口和一个子窗口。当在Windows计算机上选择X关闭主窗口时,我希望它能关闭整个应用程序,包括子窗口。下面这行代码适用于Mac PC。
mainWindow.on('closed', () => app.quit());
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();
exports.closeAppWindow = function(){
backgroundWindow.close();
mainWindow.close();
}