Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.

Интерфейс PushManager из Push API предоставляет возможность получать уведомления от сторонних серверов, а также запрашивать URL для push уведомлений.

Этот интерфейс доступен через свойство ServiceWorkerRegistration.pushManager.

Заметка: Этот интерфейс заменил функциональность, предлагаемую устаревшим PushRegistrationManager.

Свойства

Нет

Методы

PushManager.subscribe()
Подписка на пуш сервис. Возвращает промис, который разрешается в PushSubscription объект, содержащий детали новой push подписки.
PushManager.getSubscription()
Извлекает существующую push подписку. Возвращает промис, который разрешается в PushSubscription объект, содержащий детали существующей подписки.
PushManager.permissionState()
Возвращает Promise, который разрешается в состояние доступа текущего PushManager, которое может быть одним из 'granted', 'denied', или 'default'.

Устаревшие методы

PushManager.hasPermission()
Returns a Promise that resolves to the PushPermissionStatus of the requesting webapp, which will be one of granted, denied, or default. Replaced by PushManager.permissionState().
PushManager.register()
Subscribes to a push subscription. Replaced by PushManager.subscribe().
PushManager.registrations()
Retrieves existing push subscriptions. Replaced by PushManager.getSubscription().
PushManager.unregister()
Unregisters and deletes a specified subscription endpoint. In the updated API, a subscription is can be unregistered via the PushSubscription.unsubscribe() method.

Пример

this.onpush = function(event) {
  console.log(event.data);
  // From here we can write the data to IndexedDB, send it to any open
  // windows, display a notification, etc.
}

navigator.serviceWorker.register('serviceworker.js').then(
  function(serviceWorkerRegistration) {
    serviceWorkerRegistration.pushManager.subscribe().then(
      function(pushSubscription) {
        console.log(pushSubscription.subscriptionId);
        console.log(pushSubscription.endpoint);
        // The push subscription details needed by the application
        // server are now available, and can be sent to it using,
        // for example, an XMLHttpRequest.
      }, function(error) {
        // During development it often helps to log errors to the
        // console. In a production environment it might make sense to
        // also report information about errors back to the
        // application server.
        console.log(error);
      }
    );
  });

Спецификации

Спецификация Статус Комментарий
Push API
Определение 'PushManager' в этой спецификации.
Рабочий черновик Initial definition.

Совместимость с браузерами

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!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 42.0 (Да) ? ? ?
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support Нет Нет (Да) (Да) ? ? ? 42.0

Смотрите также

Метки документа и участники

Внесли вклад в эту страницу: RomanKontsevoy, mdnwebdocs-bot, fdor, chrisdavidmills
Обновлялась последний раз: RomanKontsevoy,