electron 电子(主)通知API“on.click”事件并非始终有效

hlswsv35  于 2021-09-13  发布在  Electron
关注(0)|答案(2)|浏览(245)

我的Electron notification API有一个问题。我总是得到通知,但经常通知上的点击事件不执行。有时点击事件只会执行前2次,有时只会执行第10次,有时根本不执行。
出现问题的视频文件:VIDEO
这里有我的代码:

function showNotification () {
    const notificationOptions = {
        title: 'SysInfoGrabber',
        body: 'Raport PDF został utworzony na pulpicie w folderze "Raporty"',
        icon: path.join(__dirname, 'files/icon.png')
    }
    const reportNotification = new Notification(notificationOptions);
    
    reportNotification.on('show', () => { 
        console.log('Notification is shown'); 
    });
    reportNotification.on('click', () => {
        console.log("Notification clicked");
    });
    reportNotification.show();  
}

mainFunction(){

    [...CODE...]

    // Show notify
    showNotification();
}
rkttyhzu

rkttyhzu1#

您遇到的问题可能是由于常量reportNotificationshowNotification()函数中被声明为 * local *,并且在函数退出后的一段时间内将被垃圾收集,并且附加到它的事件处理程序将不再可用。
尝试将reportNotification * 全局声明为任何其他函数之外的变量(使用let)。

let reportNotification;

function showNotification () {
    const notificationOptions = {
        title: 'SysInfoGrabber',
        body: 'Raport PDF został utworzony na pulpicie w folderze "Raporty"',
        icon: path.join(__dirname, 'files/icon.png')
    }
    reportNotification = new Notification(notificationOptions);
    
    reportNotification.on('show', () => { 
        console.log('Notification is shown'); 
    });
    reportNotification.on('click', () => {
        console.log("Notification clicked");
    });
    reportNotification.show();  
}

mainFunction(){

    [...CODE...]

    // Show notify
    showNotification();
}
uqjltbpv

uqjltbpv2#

npm i节点通知程序#

const notifier = require('node-notifier');


notifier.notify({
    appID: 'myApp',
    title: ' ',
    message: 'myMesaage',
    wait: true
}, function (err, response) {
    if (response !== 'timeout'){
       console.log("Notification clicked");
    }
});

相关问题