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

时间:2016-02-17 12:55:00

标签: javascript javascript-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中,但是它们不是跟踪Web推送通知的任何解决方法吗?

1 个答案:

答案 0 :(得分:2)

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) {
        });
    });
})