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 | Нет |
См. также
© 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