我的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,我想直接显示第二个消息框,而不是使用“是&否”按钮显示关闭。