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
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 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 |
data property |
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 |
data property |
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.