PushEvent

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

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.

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.

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.

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

BCD tables only load in the browser

See also