From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- files/ru/web/api/pushmanager/subscribe/index.html | 144 ++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 files/ru/web/api/pushmanager/subscribe/index.html (limited to 'files/ru/web/api/pushmanager/subscribe') diff --git a/files/ru/web/api/pushmanager/subscribe/index.html b/files/ru/web/api/pushmanager/subscribe/index.html new file mode 100644 index 0000000000..a264d593d7 --- /dev/null +++ b/files/ru/web/api/pushmanager/subscribe/index.html @@ -0,0 +1,144 @@ +--- +title: PushManager.subscribe() +slug: Web/API/PushManager/subscribe +translation_of: Web/API/PushManager/subscribe +--- +

{{SeeCompatTable}}{{ApiRef("Push API")}}

+ +

Метод subscribe() интерфейса {{domxref("PushManager")}} позволяет осуществлять подписку на push-уведомления.

+ +

Возвращает {{jsxref("Promise")}}, который разрешается в объект {{domxref("PushSubscription")}}, содержащий детали push-подписки. Новая push-подписка создается в случае, если сервис-воркер не имеет существующей подписки.

+ +

Синтакс

+ +
​PushManager.subscribe(options).then(function(pushSubscription) { ... } );
+ +

Свойства

+ +
+
options {{optional_inline}}
+
Объект, содержащий необязательные параметры конфигурации. Может иметь следующие свойства: +
    +
  • userVisibleOnly: Булевое значение, указывающее на то, будет ли возвращаемая подписка использоваться для сообщений, чей эффект может быть видим для пользователя.
  • +
  • applicationServerKey: открытый ключ ECDSA P-256, закодированный в Base64 {{domxref ('DOMString')}} или {{domxref ('ArrayBuffer')}}}, содержащий , который push-сервер будет использовать для аутентификации сервера приложений. Если указано, все сообщения с сервера Вашего приложения должны использовать схему аутентификации VAPID и включать JWT, подписанный соответствующим закрытым ключом. Этот ключ НЕ тот же ключ ECDH, который вы используете для шифрования данных. Для получения дополнительной информации см. «Using VAPID with WebPush».
  • +
+ +
+

Примечание: Свойство, требуемое некоторыми браузерами, например Chrome и Edge.

+
+
+
+ +

Возвращает

+ +

{{jsxref("Promise")}} который разрешается в объект {{domxref("PushSubscription")}}.

+ +

Пример

+ +
this.onpush = function(event) {
+  console.log(event.data);
+  // Отсюда можно записывать данные в IndexedDB, отправлять их в любое
+  // открытое окно, отображать уведомление и т. д.
+}
+
+navigator.serviceWorker.register('serviceworker.js').then(
+  function(serviceWorkerRegistration) {
+    serviceWorkerRegistration.pushManager.subscribe().then(
+      function(pushSubscription) {
+        console.log(pushSubscription.subscriptionId);
+        console.log(pushSubscription.endpoint);
+        // Детали push-подписки, требуемые сервером приложения,
+        // теперь доступны, и могут быть отправлены, к примеру,
+        // при помощи XMLHttpRequest.
+      }, function(error) {
+        // При разработке это часто помогает отлавливать ошибки в консоли.
+        // В продакшен-среде это также может быть полезно для отправки отчета
+        // об ошибках на сервер приложения.
+        console.log(error);
+      }
+    );
+  });
+ +

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

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('Push API', '#widl-PushManager-subscribe-Promise-PushSubscription--PushSubscriptionOptions-options', 'subscribe()')}}{{Spec2('Push API')}}Initial definition.
+ +

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

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FeatureChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Basic support{{CompatChrome(42.0)}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureAndroidAndroid WebviewFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Basic support{{CompatNo}}{{CompatNo}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatUnknown}}{{CompatChrome(42.0)}}
+
+ +

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

+ + + +

 

+ +

 

-- cgit v1.2.3-54-g00ecf