2

我正在创建一个电子应用程序。我将用户进度保存在一个文件中。当用户尚未保存并尝试关闭应用程序时,我希望应用程序显示通常的“关闭前保存更改”

我可以显示一个自定义对话框,但是,我想以本机方式进行。

(示例:在 macOS 上,当您编辑文件时,红色按钮会发生变化,让用户知道应用程序有未保存的内容)

我想要完成的示例

我知道这可能必须在 Electron 的侦听器中完成,以便关闭应用程序:

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

...防止quit()被调用。而是处理未保存的文件状态和对话框。

PD:我已经处理了知道用户是否保存进度的逻辑。我只想知道如何为我的电子应用程序设置“未保存”状态并正确处理它。

(例子是Visual Studio Code,它也是一个Electron App)

4

1 回答 1

1

我通常使用全局变量来表示发生了变化,例如在关闭应用程序的情况下: 主要代码:

mainWindow.on('close', function (event) {
if (global.savetoask== 'Yes') {
   event.preventDefault();
    //send a ipc message to request a confirm dialog
.............
          } else {
            app.exit();
          }
        });
于 2018-04-12T10:06:46.340 回答