javascript - 如何将跟踪事件推送到serviceWorker中?

标签 javascript dom-events service-worker

是否可以跟踪serviceWorker中的点击操作,这里是notificationclick事件监听器的片段。

self.addEventListener('notificationclick', function(event) {
var url = event.notification.data.url;
event.notification.close();
event.waitUntil(clients.openWindow(url));});

GTM 事件:

dataLayer.push({'event' : 'notificationClick'});

我相信数据层已经位于 serviceWorker 无法访问的 DOM 中,但是他们没有任何解决方法来跟踪网络推送通知吗?

最佳答案

notificationclick 事件发出提取请求,然后编写代码来跟踪通知的点击。

self.addEventListener('notificationclick', function(event) {
    self.registration.pushManager.getSubscription()
    .then(function(subscription) {
        // send update to server
        fetch('trackClick.php?subscriptionId='+subscriptionId)
        catch(function(err) {
        });
    });
})

关于javascript - 如何将跟踪事件推送到serviceWorker中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35457350/

相关文章:

javascript - 当我使用 express-generator 时,为什么 .bin/www 被认为是没有 .js 扩展名的 javascript 文件

javascript - 当 DOM 动态更新为新的 HTML 内容时出现 HTML 解析错误

c# - SignalR 客户端中心代理未定义

javascript - 尝试发送通知的 Firebase 函数失败

JavaScript 将事件绑定(bind)到按钮数组

javascript - 如果用户更改了 CSS 样式,则触发事件?

javascript - 确定 fetchEvent 的来源

javascript - 我需要在 2016 年删除事件监听器吗?

javascript - 如何在 Rails 应用程序上注册 serviceWorker?

HTML5 推送通知 - 其他推送方式的示例