关闭后电子过程继续运行

问题描述 投票:0回答:1

关闭我的Electron app流程继续运行。这是我的代码:

  label: 'Close', click() {
    app.quit()
  }

  window.on('close', function (e) {
    var choice = require('electron').dialog.showMessageBox(this,
      {
        type: 'question',
        buttons: ['Yes', 'No'],
        title: 'Confirm',
        message: 'Are you sure you want to quit?'
      });
    if (choice == 1) {
      e.preventDefault();
    }
  })

我做错了什么?

node.js process electron
1个回答
0
投票

您正在阻止Close事件的默认行为。 (e.PreventDefault())

您不应该在关闭事件时要求用户确认。 window.on('close')事件的目的是执行清理任务,例如删除临时文件,如果窗口是父窗口则关闭其他相关进程。

你可以用这种方式编写它:

label: 'Close', click() {
    var choice = require('electron').dialog.showMessageBox({
    type: 'question',
    buttons: ['Yes', 'No'],
    title: 'Confirm',
    message: 'Are you sure you want to quit?'
}, (response) => {
    if (response == '0') {
        app.quit()
    }
})

window.on('close', function (e) {
   window = null // Clean up your window object. 
})
© www.soinside.com 2019 - 2024. All rights reserved.