ServiceWorkerGlobalScope: push event
{{APIRef("Push API")}}
{{SecureContext_Header}}
{{AvailableInWorkers("service")}}
The push
event is sent to a service worker’s global scope (represented by the {{domxref("ServiceWorkerGlobalScope")}}
interface) when the service worker has received a push message.
This event is not cancelable and does not bubble.
Syntax
Use the event name in methods like {{domxref("EventTarget.addEventListener", "addEventListener()")}}
, or set an event handler property.
addEventListener("push", (event) => {});
onpush = (event) => {};
Event type
A {{domxref("PushEvent")}}
. Inherits from {{domxref("Event")}}
.
{{InheritanceDiagram("PushEvent")}}
Event properties
Inherits properties from its parent, {{domxref("ExtendableEvent")}}
. Additional properties:
{{domxref("PushEvent.data")}}
{{ReadOnlyInline}}
- : Returns a reference to a
{{domxref("PushMessageData")}}
object containing data sent to the{{domxref("PushSubscription")}}
.
- : Returns a reference to a
Example
This example sets up a handler for push
events that takes {{Glossary("JSON")}}
data, parses it, and dispatches the message for handling based on information contained within the message.
self.addEventListener(
"push",
(event) => {
let message = event.data.json();
switch (message.type) {
case "init":
doInit();
break;
case "shutdown":
doShutdown();
break;
}
},
false,
);
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
- Using the Push API
{{domxref("ServiceWorkerGlobalScope/pushsubscriptionchange_event", "pushsubscriptionchange")}}
event