我正在创建一个 Electron 应用程序。我将用户的进度保存在文件中。当用户尚未保存并尝试关闭应用程序时,我希望应用程序显示通常的“关闭前保存更改”消息。
我可以显示自定义对话。但是,我想以原生方式做到这一点。
(示例:在 macOS 上,当您编辑文件时,红色按钮会发生变化,让用户知道应用程序有未保存的内容)
我知道这可能必须在 Electron 的监听器内完成才能关闭应用程序:
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
...阻止
quit()
被调用。而是处理未保存的文件状态和对话框。
PD: 我已经处理了确定用户是否已保存进度的逻辑。我只想知道如何为我的电子应用程序设置“未保存”状态并正确处理它。
(示例是 Visual Studio Code,它也是一个 Electron App)
我通常使用全局变量来指示已发生的更改,例如在关闭应用程序的情况下: 主要代码:
mainWindow.on('close', function (event) {
if (global.savetoask== 'Yes') {
event.preventDefault();
//send a ipc message to request a confirm dialog
.............
} else {
app.exit();
}
});