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