NotificationEvent

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

The parameter passed into the onnotificationclick handler, the NotificationEvent interface represents a notification click event that is dispatched on the ServiceWorkerGlobalScope of a ServiceWorker.

This interface inherits from the ExtendableEvent interface.

Constructor

NotificationEvent.NotificationEvent()
Creates a new NotificationEvent object.

Properties

Inherits properties from its ancestor, Event.

NotificationEvent.notification Read only
Returns a Notification object representing the notification that was clicked to fire the event.
NotificationEvent.action Read only
Returns the string ID of the notification button the user clicked. This value returns an empty string if the user clicked the notification somewhere other than an action button, or the notification does not have a button.

Methods

Inherits methods from its parent, ExtendableEvent.

ExtendableEvent.waitUntil()

Extends the lifetime of the event.  It is intended to be called in the install EventHandler for the installing worker and on the active EventHandler for the active worker.

Example

self.addEventListener('notificationclick', function(event) {
  console.log('On notification click: ', event.notification.tag);
  event.notification.close();

  // This looks to see if the current is already open and
  // focuses if it is
  event.waitUntil(clients.matchAll({
    type: "window"
  }).then(function(clientList) {
    for (var i = 0; i < clientList.length; i++) {
      var client = clientList[i];
      if (client.url == '/' && 'focus' in client)
        return client.focus();
    }
    if (clients.openWindow)
      return clients.openWindow('/');
  }));
});

Specifications

Specification Status Comment
Notifications API
The definition of 'NotificationEvent' in that specification.
Living Standard Living standard.

Note: This interface is specified in the Notifications API, but accessed through ServiceWorkerGlobalScope.

Browser Compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung Internet
Basic support
Experimental
Chrome Full support 42Edge Full support YesFirefox Full support 44
Notes
Full support 44
Notes
Notes Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
IE ? Opera Full support 37Safari ? WebView Android No support NoChrome Android Full support 42Edge Mobile ? Firefox Android Full support 44Opera Android Full support 37Safari iOS ? Samsung Internet Android Full support 4.0
NotificationEvent() constructor
Experimental
Chrome Full support 42Edge Full support YesFirefox Full support 44
Notes
Full support 44
Notes
Notes Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
IE ? Opera Full support 37Safari ? WebView Android No support NoChrome Android Full support 42Edge Mobile ? Firefox Android Full support 44Opera Android Full support 37Safari iOS ? Samsung Internet Android Full support 4.0
notification
Experimental
Chrome Full support 42Edge Full support YesFirefox Full support 44
Notes
Full support 44
Notes
Notes Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
IE ? Opera Full support 37Safari ? WebView Android No support NoChrome Android Full support 42Edge Mobile ? Firefox Android Full support 44Opera Android Full support 37Safari iOS ? Samsung Internet Android Full support 4.0
action
Experimental
Chrome Full support 48Edge Full support YesFirefox Full support 44
Notes
Full support 44
Notes
Notes Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
IE ? Opera No support NoSafari ? WebView Android No support NoChrome Android Full support 48Edge Mobile ? Firefox Android Full support 44Opera Android No support NoSafari iOS ? Samsung Internet Android Full support 5.0

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
See implementation notes.
See implementation notes.

Document Tags and Contributors

Contributors to this page: gkalpak, duduindo, fscholz, jpmedley, chrisdavidmills, rolfedh
Last updated by: gkalpak,