Push API


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

Push API daje aplikacjom web możliwość odbierania wiadomości przesłanych z serwera, niezależnie do tego czy aplikacja pracuje w tle, lub jest wogóle załadowana w przeglądarce internetowej. To pozwala programistom dostarczać (asynchronicznie) powiadomienia i aktualizacje do użytkowników którzy zezwolili na przesyłanie notyfikacj, w efekcie mamy lepszą komunikację z użytkownikiem, którzy dostają nowe treści w odpowiednim czasie.th timely new content.

Pojęcia i stosowanie

For an app to receive push messages, it has to have an active service worker. When the service worker is active, it can subscribe to push notifications, using PushManager.subscribe() (en-US).

The resulting PushSubscription (en-US) includes all the information that the application needs to send a push message: an endpoint and the encryption key needed for sending data.

The service worker will be started as necessary to handle incoming push messages, which are delivered to the ServiceWorkerGlobalScope.onpush (en-US) event handler. This allows apps to react to push messages being received, for example, by displaying a notification (using ServiceWorkerRegistration.showNotification() (en-US).)

Each subscription is unique to a service worker.  The endpoint for the subscription is a unique capability URL: knowledge of the endpoint is all that is necessary to send a message to your application. The endpoint URL therefore needs to be kept secret, or other applications might be able to send push messages to your application.

Activating a service worker to deliver a push message can result in increased resource usage, particularly of the battery. Different browsers have different schemes for handling this, there is currently no standard mechanism. Firefox allows a limited number (quota) of push messages to be sent to an application, although Push messages that generate notifications are exempt from this limit. The limit is refreshed each time the site is visited. In comparison, Chrome applies no limit, but requires that every push message causes a notification to be displayed.

Note: As of Gecko 44, the allowed quota of push messages per application is not incremented when a new notification fires, when another is still visible, for a period of three seconds. This handles cases where a burst of notifications is received, and not all generate a visible notification.

Note: Chrome versions earlier than 52 require you to set up a project on Google Cloud Messaging to send push messages, and use the associated project number and API key when sending push notifications. It also requires an app manifest, with some special parameters to use this service.


PushEvent (en-US)
Represents a push action, sent to the global scope of a ServiceWorker (en-US). It contains information sent from an application to a PushSubscription (en-US).
PushManager (en-US)
Provides a way to receive notifications from third-party servers, as well as request URLs for push notifications. This interface has replaced the functionality offered by the obsolete PushRegistrationManager (en-US) interface.
PushMessageData (en-US)
Provides access to push data sent by a server, and includes methods to manipulate the received data.
PushSubscription (en-US)
Provides a subcription's URL endpoint, and allows unsubscription from a push service.

Wzbogacenia Service worker

The following additions to the Service Worker API have been specified in the Push API spec to provide an entry point for using Push messages. They also monitor and respond to push and subscription change events.

ServiceWorkerRegistration.pushManager (en-US) Read only
Returns a reference to the PushManager (en-US) interface for managing push subscriptions including subscribing, getting an active subscription, and accessing push permission status. This is the entry point into using Push messaging.
ServiceWorkerGlobalScope.onpush (en-US)
An event handler fired whenever a push event occurs; that is, whenever a server push message is received.
ServiceWorkerGlobalScope.onpushsubscriptionchange (en-US)
An event handler fired whenever a pushsubscriptionchange event occurs; for example, when a push subscription has been invalidated, or is about to be invalidated (e.g. when a push service sets an expiration time.)


ServiceWorker Cookbook Mozilli zawiera dużo przydatnych przykładów Push.


Specification Status Comment
Push API Working Draft Initial definition

Zgodność przeglądarek

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)
Funkcjonalność Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 42.0 44.0 (44.0)[1][3] No support[2] ? ?
PushEvent.data (en-US),
PushMessageData (en-US)
No support 44.0 (44.0)[3] 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.0)[4] No support ?[2] ? ? 42.0
PushEvent.data (en-US),
PushMessageData (en-US)
No support No support 48.0 (48.0)[4] No support No support No support No support No support
  • [1] Aktualnie dostępne tylko dla wersji desktop przeglądarek Firefox; również, wiadomości push są dostarczane tylko wtedy gdy Firefox jest uruchomiony.
  • [2] Aktualnie nie jest zaimplementowane. Zobacz Microsoft Edge status information.
  • [3] Push (i Service Workers) zostały zablokowane w wersjach przeglądarek Firefox 45 and 52 Extended Support Releases (ESR.)
  • [4] Push jest już dostępny (domoyślnie) w przeglądarkach Firefox oraz Android version 48.

Zobacz również