Web通知的事件侦听器

有没有办法为桌面通知设置事件监听器?

document.addEventListener("desktop notification", function(){ // do something }); 

我查看了MDN事件引用 ,但通知的唯一事件类型似乎仅适用于alert()

有关工作样本,请参阅https://github.com/jiahaog/nativefier项目。 注意摘录(来自https://github.com/jiahaog/nativefier/blob/development/app/src/static/preload.js ):

 function setNotificationCallback(callback) { const OldNotify = window.Notification; const newNotify = (title, opt) => { callback(title, opt); return new OldNotify(title, opt); }; newNotify.requestPermission = OldNotify.requestPermission.bind(OldNotify); Object.defineProperty(newNotify, 'permission', { get: () => { return OldNotify.permission; } }); window.Notification = newNotify; } 

因此,您将窗口的Notification对象替换为自身对象,该对象充当具有添加行为的代理(在创建新通知时调用回调)。

希望这可以帮助

@marekful是对的。 您可以考虑在Notification对象上放置回调甚至附加事件,而不是放置全局事件侦听器。

 var noticeMe = new Notification(title, options); noticeMe.onshow = function() { console.log("easy!") }; 

支持事件的完整列表可以在这里找到: https : //developer.mozilla.org/en-US/docs/Web/API/Notification , 这里还有几个月前我写的关于Notification API的文章

看一眼

  • Notification.onclick

    Notification.onclose

    Notification.onerror

    Notification.onshow