如何禁用角电子的关闭事件

时间:2018-09-27 06:12:47

标签: angular typescript electron

我的component.ts中有一个函数

isOperationComplete()
{
   return this.Status == "COMPLETE";
}

在组件中,我用hostlistener装饰了一个函数,当操作未完成时,该函数将$ event.returnValue返回为true,

@HostListener('window:beforeunload', ['$event'])
  unloadNotification($event: any) {

      else if (!this.isOperationComplete()) 
        $event.returnValue =true;

  }

在main.js中,发生关闭事件时,我在电子窗口中显示一个消息框,如下所示,

win.on('close', function (e) {
        var choice = dialog.showMessageBox(this,{
            type: 'question',
            buttons: ['Yes', 'No'],
            title: 'Confirm',
            message: 'You are attempting to close Application, Do you want to exit?'
        });
        if(choice == 1){
            e.preventDefault();
        }

    })

当用户单击电子的关闭按钮时,也会出现上述消息框,当用户单击“是”按钮时,如果组件中的unloadNotification()返回true,则会在消息框下方出现。

win.webContents.on('will-prevent-unload', (event) => {
      const choice = dialog.showMessageBox(win, {
        type: 'warning',
        buttons:['OK'],
        title: 'Warning',
        message: 'A Critical operation is in progress, Application closing is prevented.'
      })
    })

我要实现的目标:单击电子UI的关闭按钮时,如果unloadNotification返回true,我想直接显示第二个消息框,而不是使用“是&否”按钮显示关闭。

0 个答案:

没有答案