关闭Electron应用程序时如何原生显示Save Changes Dialog?

时间:2018-04-12 03:37:15

标签: macos vue.js electron file-management electron-vue

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

我可以显示自定义对话框,但是,我希望以原生方式进行。

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

http://blog.derakkilgo.com/2009/06/07/send-a-file-via-post-with-curl-and-php/

我知道必须在Electron的听众内部完成这项工作:

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

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

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

(示例是Visual Studio Code,也是电子应用程序)

1 个答案:

答案 0 :(得分:1)

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

mainWindow.on('close', function (event) {
if (global.savetoask== 'Yes') {
   event.preventDefault();
    //send a ipc message to request a confirm dialog
.............
          } else {
            app.exit();
          }
        });