簡體   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