From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/web/api/pushmanager/subscribe/index.html | 105 ++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 files/ja/web/api/pushmanager/subscribe/index.html (limited to 'files/ja/web/api/pushmanager/subscribe') diff --git a/files/ja/web/api/pushmanager/subscribe/index.html b/files/ja/web/api/pushmanager/subscribe/index.html new file mode 100644 index 0000000000..0d2476a88f --- /dev/null +++ b/files/ja/web/api/pushmanager/subscribe/index.html @@ -0,0 +1,105 @@ +--- +title: PushManager.subscribe() +slug: Web/API/PushManager/subscribe +tags: + - API + - Experimental + - Method + - PushManager + - Reference + - Web API + - subscribe +translation_of: Web/API/PushManager/subscribe +--- +

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

+ +

{{domxref("PushManager")}} インターフェースの subscribe() メソッドは、プッシュサービスを提供します。

+ +

これは、プッシュサブスクリプションの詳細を含む {{domxref("PushSubscription")}} オブジェクトで解決される {{jsxref("Promise")}} を返します。現在の service worker に既存のサブスクリプションがない場合、新しいプッシュサブスクリプションが生成されます。

+ +

構文

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

パラメーター

+ +
+
options {{optional_inline}}
+
オプションの設定パラメータを含むオブジェクト。次のプロパティを設定できる: +
    +
  • userVisibleOnly: 返されたプッシュサブスクリプションの効果がユーザーに表示するメッセージにだけ使われるかを示す boolean 値。
  • +
  • applicationServerKey: プッシュサーバーがアプリケーションサーバーを認証するために使用する 楕円曲線 DSA P-256 公開鍵を含む、Base64 でエンコードされた {{domxref("DOMString")}} または {{domxref("ArrayBuffer")}}。指定した場合は、アプリケーションサーバーから発するすべてのメッセージで VAPID 認証スキームを使用しなければならず、また対応する秘密鍵で署名した JWT を含めなければなりません。この鍵は、データを暗号化するために使用する ECDH 鍵と同じではありません。詳しくは "Using VAPID with WebPush" をご覧ください。
  • +
+ +
+

注記: この引数は Chrome など、一部のブラウザーで必須です。

+
+
+
+ +

戻り値

+ +

{{domxref("PushSubscription")}} オブジェクトを解決する {{jsxref("Promise")}} 。

+ +

+ +
this.onpush = function(event) {
+  console.log(event.data);
+  // ここから、IndexedDB にデータを書き込んだり、いずれかのウィンドウに
+  // それを送信したり、通知を表示したりできます。
+}
+
+navigator.serviceWorker.register('serviceworker.js');
+
+// Use serviceWorker.ready to ensure that you can subscribe for push
+navigator.serviceWorker.ready.then(
+  function(serviceWorkerRegistration) {
+    var options = {
+      userVisibleOnly: true,
+      applicationServerKey: applicationServerKey
+    };
+    serviceWorkerRegistration.pushManager.subscribe(options).then(
+      function(pushSubscription) {
+        console.log(pushSubscription.endpoint);
+        // アプリケーションサーバが必要としているプッシュサブスクリプションの
+        // 詳細はここから使用できます。たとえば、XMLHttpRequest を使用して
+        // これを送信できます。
+      }, function(error) {
+        // 開発中は、コンソールにエラーを表示するのに役立ちます。
+        // 本番環境では、アプリケーションサーバにエラー情報を送信
+        //  するためにも 役立ちます。
+        console.log(error);
+      }
+    );
+  });
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Push API', '#widl-PushManager-subscribe-Promise-PushSubscription--PushSubscriptionOptions-options', 'subscribe()')}}{{Spec2('Push API')}}初期定義
+ +

ブラウザ実装状況

+ +
+ + +

{{Compat("api.PushManager.subscribe")}}

+
+ +

関連項目

+ + -- cgit v1.2.3-54-g00ecf