Provides a means to registering a service worker in the browser and communicating with it via postMessage events.

postMessage events are currently not supported in all browsers. See:

At the minmum this class will register the service worker and listen and attempt to dispatch messages on state change and record analytics events based on the service worker lifecycle.




  • Register the service-worker.js file in the browser Make sure the service-worker.js is part of the build for example with Angular, modify the angular-cli.json file and add to "assets" array "service-worker.js"


    Returns Promise<unknown>

    • resolve(ServiceWorkerRegistration)
      • reject(Error)
  • Send a message to the service worker. The service worker needs to implement `self.addEventListener('message') to handle the message. This currently does not work in Safari or IE.


    Returns void