Get the currently active service worker
Listen for service worker state change and message events https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorker/state
Each call to register() attaches its own statechange listener. The
onStateChange handler is captured in a local at listener-creation time,
so re-registering with a different handler only affects its own listener
and never re-targets a previously attached one.
Enable web push notifications. If not subscribed, a new subscription will be created and registered. Test Push Server: https://web-push-codelab.glitch.me/ Push Server Libraries: https://github.com/web-push-libs/ API Doc: https://developers.google.com/web/fundamentals/codelabs/push-notifications/
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"
Note: when options.onStateChange is omitted, this method implicitly
records service worker lifecycle (statechange) events to Amazon
Pinpoint. That built-in auto-recording is deprecated and will be removed
in a future major version — only the implicit Pinpoint recording is
deprecated, not register() itself. Provide options.onStateChange to
observe lifecycle state changes and emit vendor-neutral telemetry instead.
OptionalfilePath: stringService worker file. Defaults to "/service-worker.js"
Optionalscope: stringThe service worker scope. Defaults to "/"
Optionaloptions: ServiceWorkerOptionsOptional registration options. When
onStateChange is provided it is invoked on every service worker state
change and replaces the built-in Pinpoint auto-recording. It is also
invoked once with the worker's current state at registration time, so an
already-active worker (which dispatches no statechange event) is still
observed. This initial emit applies only to onStateChange; the built-in
Pinpoint path is unaffected.
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.
An arbitrary JSON object or string message to send to the service worker - see: https://developer.mozilla.org/en-US/docs/Web/API/Transferable
Provides a means to registering a service worker in the browser and communicating with it via postMessage events. https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/
postMessage events are currently not supported in all browsers. See: https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API
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.