web-dev-qa-db-ja.com

ブラウザが閉じられていても、Service Workerはバックグラウンドで実行されますか?

Facebookウェブのプッシュ通知は、chromeでchromeを開いたときにのみ表示されます。この通知はservice workerを介して送信されることがわかっています。ブラウザーが閉じている場合でも、開いている場合のみchromeこれらのサービスワーカー同期プロセスのみが開始され、プッシュ通知の送信を開始します。

18
Jagajit Prusty

最初に言うことは、これはプラットフォームによって多少異なります。 chrome=の私の理解は:

WindowsやMac OS Xなどのデスクトッププラットフォームでは、サービスワーカーが実行できるようにするには、ブラウザーでバックグラウンドプロセスを実行する必要があります。 Mac OS Xでは、ブラウザーでウィンドウを開くことはできませんが、ブラウザーの下にはまだ輝いている点があるため、これは非常に簡単に検出できます。

モバイルプラットフォームでは、イベントをリッスンして効率的な方法で処理する方が簡単であるため、これらの場合、プラットフォームはブラウザーを起動して、対応するイベントを処理します。

上記はすべてのService Worker APIに適用されます。

デスクトップ:ブラウザーが完全に閉じているの場合、Service Workerは実行できず、イベントをディスパッチしません(つまり、プッシュイベントまたはバックグラウンド同期イベントはありません)

モバイル:イベントは引き続きディスパッチされます(つまり、ユーザーのデバイスがオンラインになり、プッシュが受信されてプッシュイベントが発生すると、バックグラウンド同期がトリガーされます)。

13
Matt Gaunt

ブラウザを閉じた場合、Service Workerを実行できるとは思わない。サービスワーカーは、ブラウザを開いた後にのみプッシュ通知を送信できるためです。バックグラウンドで実行されている場合、ブラウザを閉じた後でも通知を送信できた可能性があります。

1
Jagajit Prusty