PushEvent

Baseline 2023
Newly available

Since ⁨March 2023⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is only available in Service Workers.

The PushEvent interface of the Push API represents a push message that has been received. This event is sent to the global scope of a ServiceWorker. It contains the information sent from an application server to a PushSubscription.

Event ExtendableEvent PushEvent

Constructor

PushEvent()

Creates a new PushEvent object.

Instance properties

Inherits properties from its parent, ExtendableEvent. Additional properties:

PushEvent.data Read only

Returns a reference to a PushMessageData object containing data sent to the PushSubscription.

Instance methods

Inherits methods from its parent, ExtendableEvent.

Examples

The following example takes data from a PushEvent and displays it on all of the service worker's clients.

js
self.addEventListener("push", (event) => {   if (!(self.Notification && self.Notification.permission === "granted")) {     return;   }    const data = event.data?.json() ?? {};   const title = data.title || "Something Has Happened";   const message =     data.message || "Here's something you might want to check out.";   const icon = "images/new-notification.png";    const notification = new self.Notification(title, {     body: message,     tag: "simple-push-demo-notification",     icon,   });    notification.addEventListener("click", () => {     clients.openWindow(       "https://example.blog.com/2015/03/04/something-new.html",     );   }); }); 

Specifications

Specification
Push API>
# pushevent-interface>

Browser compatibility

See also