Angular 2倾听推送事件

时间:2016-07-10 09:45:16

标签: angular push-notification service-worker

我正在尝试收听Angular 2网络应用中服务器发送的推送通知。我初始化了一个ServiceWorker服务工作者脚本(sw.js)并注册了推送通知,如下所示

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/app/sw.js', { scope: '/app/' }).then(function(reg) {
    // registration worked
    console.log('Registration succeeded. Scope is ' + reg.scope);
    // register for push notifications
    reg.pushManager.subscribe({
       userVisibleOnly: true;
    }).then(
        function(subscription) {
           console.log('subscription endpoint is ' + subscription.endpoint);
        }, 
        function(err) {
           console.log(err);
        })
  }).catch(function(error) {
    // registration failed
    console.log('Registration failed with ' + error);
  });
}

并且在sw.js中我会听推送事件,即

self.addEventListener('push', function(event) {
    console.log('Push message received!', event);
});

这一切都有效:应用程序初始化ServiceWorker,我可以在ServiceWoker线程中接收推送通知。但是,我希望我的Angular 2应用程序的组件能够监听推送事件,而不仅仅是sw.js脚本。

如何让应用程序的组件侦听服务工作者收到的推送通知?或者,如何从我的应用中访问ServiceWorkerGlobalScope

0 个答案:

没有答案