問題タブ [web-push]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
9 に答える
198443 参照

javascript - ブラウザにプッシュ通知を送るには?

Push Notification APIWeb Notification APIについて、ここ数時間読んでいます。また、Google と Apple がそれぞれ GCM と APNS を介して無料でプッシュ通知サービスを提供していることも発見しました。

デスクトップ通知を使用してブラウザーにプッシュ通知を実装できるかどうかを理解しようとしています。これは Web Notification API が行うことだと思います。Chrome でこれを行う方法に関する Google のドキュメントをこちらこちらで見ました。

今でも理解できないのは次のとおりです。

  1. GCM/APNS を使用して、Firefox や Safari を含むすべての Web ブラウザーにプッシュ通知を送信できますか?
  2. GCM 経由でない場合、独自のバックエンドで同じことを行うことはできますか?

これらすべての回答を 1 つの回答にまとめることで、同様の混乱を抱えている多くの人を助けることができると思います。

0 投票する
1 に答える
1310 参照

service-worker - GCM なしで Chrome で新しいプッシュ通知サポートを使用することは可能ですか?

Service Workerで新しい Push API を使用する場合、Google のGCM以外のプッシュ サービスを使用できますか?

0 投票する
1 に答える
847 参照

service-worker - ネイティブ Web アプリとプログレッシブ Web アプリの間で通知の重複を排除する方法は?

Service Worker による Web プッシュ通知を使用するネイティブ アプリとプログレッシブ Web アプリの両方を使用している場合、ユーザーが Web サイトからの通知の受信をオプトインし、アプリもインストールしている場合に、ユーザーが重複した通知を受信しないようにする方法はありますか? ?

0 投票する
1 に答える
1132 参照

google-chrome - Service Worker 内で pushSubscription.endpoint を読み取るにはどうすればよいですか?

Google Chrome Service Worker を使用して、Web ユーザー向けのプッシュ通知サービスを実装しています。

Chrome の現在のセキュリティ制約ではペイロードを送信できないため、Web サーバーからコンテンツを取得していますが、どのエンド ユーザーがプッシュ ペイロードをクエリしているかをサービス側で特定するのは非常に複雑です。

私の Service-Worker が接続されている yh に関する pushSubscription.endpoint または任意のフォームまたは一意の ID の情報を取得することは可能ですか?

0 投票する
1 に答える
1909 参照

push-notification - Chrome プッシュ通知エンドポイント + ユーザー ID

Chrome のプッシュ通知 (プッシュ API と通知 API) を統合する計画があります。

サブスクリプションが成功すると、Chrome サーバーはクライアントに特別なトークン (「エンドポイント」) を送信します。これを使用して、クライアントを識別し、プッシュ メッセージを送信できます。

ドキュメントから:

後でプッシュ メッセージを送信する必要があるため、エンドポイントはユーザーごとにサーバーに保存する必要があります。

いくつか質問があります:

  1. サーバー側で「エンドポイント」をどのように管理していますか? AJAX によってサーバーへのサブスクリプションが成功した後、この「エンドポイント」を送信し、DB に保存しますか。または、Cookie に保存してから、ログイン/登録要求後にサーバーに保存します。
  2. 「エンドポイント」と実際のユーザーをどのように接続するのだろうか?ユーザーはサイトを開き、[許可] をクリックしてプッシュ通知を表示できますが、セッション Cookie がないため、その時点でこの「エンドポイント」を実際のユーザーと識別することはできません。
  3. この「エンドポイント」には TTL がありますか?
0 投票する
3 に答える
2850 参照

javascript - Chrome プッシュ通知をスケジュールする方法は?

Web サイトのユーザー向けに Chrome プッシュ通知を実装しています。サービスワーカーを介して正常に実行できます。私はこれらの記事/チュートリアルに従っています

  1. https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web?hl=en
  2. http://www.html5rocks.com/en/tutorials/service-worker/introduction/

これは、今すぐ通知を送信したい場合、つまり将来のスケジュールを設定せずに非常にうまく機能します。

私の問題:

この通知をスケジュールしたいのですが、その日の後半に定期的に発生する可能性があります。これは、cron を使用して行うことができます。しかし、ここに記載されているように、GCM はペイロードを送信しませんhttps://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web?hl=enを引用します。

Chrome でのプッシュ API の現在の実装の欠点は、プッシュ メッセージでデータを送信できないことです。いいえ、何もありません。これは、将来の実装では、ペイロード データをプッシュ メッセージング エンドポイントに送信する前に、サーバー上で暗号化する必要があるためです。この方法では、プッシュ プロバイダーが何であれ、エンドポイントはプッシュ メッセージのコンテンツを簡単に表示できなくなります。これにより、HTTPS 証明書の不十分な検証や、サーバーとプッシュ プロバイダー間の中間者攻撃など、他の脆弱性からも保護されます。ただし、この暗号化はまだサポートされていないため、当面はフェッチを実行して、通知の入力に必要な情報を取得する必要があります。

このため、ブラウザーでプッシュ イベントを受信したスケジュールされた通知を特定できません。GCM に複数の通知が送信される可能性があるため。

通知テーブルの最後のレコードを取得しています。つまり、常に最後のレコード データを表示しています。Chromeブラウザでプッシュイベントを受信して​​いる通知がわからないためです。

私の質問:

通知をスケジュールしてクライアント/ブラウザに正しい通知を表示する回避策はありますか? ネイティブのクロムプッシュAPIでも可能ですか?

0 投票する
1 に答える
2527 参照

html - 別のドメインから Service Worker を登録する方法

Google Chrome にプッシュ通知を実装しようとしています。別のドメインから Service Worker を登録したい。

例: Service Worker コードはhttps://example.com/にあります。

別のドメインから Service Worker (上記のドメインにある) を登録したい: https://example2.com/

同じことを達成する方法はありますか。Service Workerのページ(例)をiFrameでインクルードしようとすると、登録中にService Workerがエラーをスローしてしまうため

「キャッチされていない (約束された) DOMException: 登録に失敗しました - 許可が拒否されました」

0 投票する
1 に答える
737 参照

android - Chromeプッシュ通知プッシュデータを取得する方法は?

私はGoogleのこのチュートリアルに従っています:

https://developers.google.com/web/updates/2015/03/push-notifications-on-the-open-web

試してみましたが、プッシュ通知でデータを取得する方法がわかりません。

たとえば、次のようなデータを取得したいとします。

これdataは、Google Cloud Messaging にプッシュしたフィールドの 1 つです。