Spec-Zone.ru › Web APIs

PushManager

Базовая версия 2023
Новое

С марта 2023 года эта функция работает на последних версиях устройств и браузеров. Возможно, она не будет работать на более старых устройствах или браузерах.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Примечание: Эта функция доступна в Web Workers.

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

К этому интерфейсу можно обратиться через свойство ServiceWorkerRegistration.pushManager.

Статические свойства

PushManager.supportedContentEncodings

Возвращает массив поддерживаемых кодировок содержимого, которые могут быть использованы для шифрования полезной нагрузки push-сообщения.

Методы экземпляра

PushManager.getSubscription()

Возвращает существующую подписку на push-уведомления. Возвращает Promise, который разрешается в объект PushSubscription с подробностями существующей подписки. Если существующей подписки нет, возвращается значение null.

PushManager.permissionState()

Возвращает Promise, который разрешается в состояние разрешения на push-уведомления для текущего PushManager, которое может быть одним из 'granted', 'denied', или 'prompt'.

PushManager.subscribe()

Подписывается на push-уведомления. Возвращает Promise, который разрешается в объект PushSubscription с подробностями подписки на push-уведомления. Если у текущего service worker нет существующей подписки, создаётся новая.

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

PushManager.hasPermission() Устаревший Нестандартный

Возвращает Promise, который разрешается в состояние разрешения на push-уведомления для запрашиваемого веб-приложения, которое может быть одним из granted, denied, или default. Заменён на PushManager.permissionState().

PushManager.register() Устаревший Нестандартный

Подписывается на push-уведомления. Заменён на PushManager.subscribe().

PushManager.registrations() Устаревший Нестандартный

Возвращает существующие подписки на push-уведомления. Заменён на PushManager.getSubscription().

PushManager.unregister() Устаревший Нестандартный

Отменяет регистрацию и удаляет указанную конечную точку подписки. В обновлённом API подписка отменяется вызовом метода PushSubscription.unsubscribe().

Пример

this.onpush = (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((serviceWorkerRegistration) => {
    serviceWorkerRegistration.pushManager.subscribe().then(
      (pushSubscription) => {
        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, the fetch() API.
      },
      (error) => {
        console.error(error);
      },
    );
  });

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

Спецификация
Push API
# pushmanager-interface

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

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
PushManager 42 17 44 29
16Уведомления поддерживаются в macOS Ventura и более поздних версиях.
42 48 29
16.4Уведомления поддерживаются в веб-приложениях, сохранённых на главном экране.
4.0 Нет
getSubscription 42 17 44 29
16Уведомления поддерживаются в macOS Ventura и более поздних версиях.
42 48 29
16.4Уведомления поддерживаются в веб-приложениях, сохранённых на главном экране.
4.0 Нет
hasPermission 42 17 44 29 Нет 42 48 29 Нет 4.0 Нет
permissionState 44 17 44 31
16Уведомления поддерживаются в macOS Ventura и более поздних версиях.
44 48 32
16.4Уведомления поддерживаются в веб-приложениях, сохранённых на главном экране.
4.0 Нет
register 42 17 44 29 Нет 42 48 29 Нет 4.0 Нет
registrations 42 17 44 29 Нет 42 48 29 Нет 4.0 Нет
subscribe
42Требуется параметр options со значением applicationServerKey.
17Требуется параметр options со значением applicationServerKey.
44С Firefox 72 и далее может вызываться только в ответ на пользовательское действие, такое как событие click.
29
16Уведомления поддерживаются в macOS Ventura и более поздних версиях.
42Требуется параметр options со значением applicationServerKey.
48С Firefox Android 79 и далее может вызываться только в ответ на пользовательское действие, такое как событие click.
29Требуется параметр options со значением applicationServerKey.
16.4Уведомления поддерживаются в веб-приложениях, сохранённых на главном экране.
4.0Требуется параметр options со значением applicationServerKey.
Нет
supportedContentEncodings_static 60 17 134 47
16Уведомления поддерживаются в macOS Ventura и более поздних версиях.
60 134 44
16.4Уведомления поддерживаются в веб-приложениях, сохранённых на главном экране.
4.0 Нет
unregister 42 17 44 29 Нет 42 48 29 Нет 4.0 Нет

См. также

  • API уведомлений
  • API сервисных рабочих потоков

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PushManager

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API