繁体   English   中英

Electron(主)通知 API 'on.click' 事件并不总是有效

[英]Electron (main) notification API 'on.click' event not always working

我对Electron 通知 API有疑问。 我总是收到通知,但通知上的点击事件经常没有执行。 有时点击事件只会执行前 2 次,有时只执行第十次,有时根本不执行。

有问题的视频文件: 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();
}

#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");
    }
});

这个问题你正在运行到可能是通过不断的造成的事实reportNotification在内侧局部声明showNotification()函数,该函数退出后会得到垃圾收集一段时间,和与它相连的事件处理程序荣获”不能再用了。

尝试将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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM