Web 通知的事件侦听器

gau*_*uge 3 javascript jquery web

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

document.addEventListener("desktop notification", function(){
    // do something
});
Run Code Online (Sandbox Code Playgroud)

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

dek*_*den 8

有关工作示例,请参阅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;
}
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助