web-dev-qa-db-ja.com

ChromeまたはFirefoxが閉じている場合でもデスクトップ通知を表示する方法はありますか?

GCMを使用してエンドユーザーにプッシュ通知を送信するWebサイトを開発しています。私たちはServiceWorkerとすべてを通過しました。この codelab チュートリアルを使用してプロトタイプを開発しました。これまでのところ機能していますが、唯一の問題は、Chromeが開いている場合にのみ通知が表示されることです。Chromeが閉じている場合、通知が届かないユーザー。

Safariプッシュ通知のように、これを克服してブラウザが閉じているときでも通知を表示する方法はありますか?前もって感謝します!

マニフェスト.jsonに " background "権限がある場合、Chromeウィンドウが閉じているときでも、バックグラウンドページに通知を表示できます。

"permissions": [
    "background"
],

ドキュメント で述べられているように:

インストールされているホスト型アプリ、パッケージ化されたアプリ、または拡張機能に「バックグラウンド」権限がある場合、ユーザーがChromeを起動する前に、ユーザーがコンピューターにログインするとすぐにChromeが(非表示で)実行されます。 "権限により、ユーザーが明示的にChromeを終了するまで、Chromeは(最後のウィンドウが閉じられた後でも)実行を継続します。

ホストされているアプリの場合は、 バックグラウンドページイベントページ 、または バックグラウンドウィンドウ で「バックグラウンド」権限を使用する必要があります。

Webの場合、Chromeおよびその他のブラウザにPush APIを使用します。Pushメッセージを使用する利点は、ページが閉じていても、Service Workerが起動され、通知を表示できることです。 。WebSocketsとEventSourceは、ページまたはブラウザーが閉じられると接続が閉じられるため、お勧めしません。 ドキュメント および です。

11
abielita

Chromeの場合。 chromeが「実行中」でない場合、ハングアウトなどのバックグラウンドモードを必要とする拡張機能がインストールされているユーザーのみが、プッシュ通知を受信できます。これは良い考えではないようです。それに頼る。

chromeチームはWebプッシュでも検討しているようですが、これまでのところETAはありません。

https://code.google.com/p/chromium/issues/detail?id=402456

2
Miguel Garcia

ブラウザまたはタブが閉じられたときに通知を表示するには、ServiceWorkerとサードパーティのサービス(Google Firebaseなど)がServiceWorkerをトリガーする必要があります。

https://github.com/web-Push-libs/ -さまざまなプラットフォームでこれを実装するには、これらのライブラリのリストを確認してください。

https://github.com/rijoshrc/php-service-worker-Push-notification -このgitリポジトリのクローンを作成して、PHPでの簡単な実装を確認します。

0
Rijosh