This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
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.
Constructor
- PushEvent.PushEvent()
- Creates a new PushEventobject.
Properties
Inherits properties from its parent, ExtendableEvent. Additional properties:
- PushEvent.dataRead only
- Returns a reference to a PushMessageDataobject containing data sent to thePushSubscription.
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', function(event) {
  if (!(self.Notification && self.Notification.permission === 'granted')) {
    return;
  }
  var data = {};
  if (event.data) {
    data = event.data.json();
  }
  var title = data.title || "Something Has Happened";
  var message = data.message || "Here's something you might want to check out.";
  var icon = "images/new-notification.png";
  var notification = new self.Notification(title, {
    body: message,
    tag: 'simple-push-demo-notification',
    icon: icon
  });
  notification.addEventListener('click', function() {
    if (clients.openWindow) {
      clients.openWindow('https://example.blog.com/2015/03/04/something-new.html');
    }
  });
});
Specifications
| Specification | Status | Comment | 
|---|---|---|
| Push API The definition of 'PushEvent' in that specification. | Working Draft | Initial definition. | 
Browser Compatibility
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) | 
|---|---|---|---|---|---|
| Basic support | 42.0 | 44.0 (44.0)[1][2] | No support | ? | No support | 
| dataproperty | No support | 44.0 (44.0)[2] | No support | No support | No support | 
| Feature | Android | Android Webview | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android | 
|---|---|---|---|---|---|---|---|---|
| Basic support | No support | No support | 48.0 (48)[3] | No support | No support | No support | No support | 42.0 | 
| dataproperty | No support | No support | 48.0 (48)[3] | No support | No support | No support | No support | No support | 
- [1] Currently enabled in Nightly/Developer Edition/Beta by default, but not in the Release channel (bug 1208560.)
- [2] Push (and Service Workers) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)
- [3] Push has been enabled by default on Firefox for Android version 48.