files/en-us/web/api/serviceworkerglobalscope/push_event/index.md
{{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.
Use the event name in methods like {{domxref("EventTarget.addEventListener", "addEventListener()")}}, or set an event handler property.
addEventListener("push", (event) => { })
onpush = (event) => { }
A {{domxref("PushEvent")}}. Inherits from {{domxref("Event")}}.
{{InheritanceDiagram("PushEvent")}}
Inherits properties from its parent, {{domxref("ExtendableEvent")}}. Additional properties:
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;
}
});
{{Specifications}}
{{Compat}}