ServiceWorkerRegistration

Service Worker APIServiceWorkerRegistration インターフェイスは、サービスワーカー登録を表します。 あなたは同じオリジンを共有する1つ以上のページを制御するサービスワーカーを登録します。

サービスワーカー登録の存続期間は、対応するサービスワーカークライアントの存続期間内でそれらを表す ServiceWorkerRegistration オブジェクトの存続期間を超えています。 ブラウザーは、アクティブな ServiceWorkerRegistration オブジェクトの永続的なリストを維持します。

: この機能は Web Worker で使用できます。

プロパティ

また、その親インターフェイスである EventTarget からプロパティを実装します。

ServiceWorkerRegistration.scope 読取専用
サービスワーカー登録の一意の識別子を返します。 これは、ServiceWorker を登録する文書と同じオリジンにある必要があります。
ServiceWorkerRegistration.installing 読取専用
状態がインストール中(installing)のサービスワーカーを返します。 これは最初は null に設定されています。
ServiceWorkerRegistration.waiting 読取専用
状態がインストール済み(installed)のサービスワーカーを返します。 これは最初は null に設定されています。
ServiceWorkerRegistration.active 読取専用
状態がアクティブ化中(activating)またはアクティブ化済み(activated)のサービスワーカーを返します。 これは最初は null に設定されています。 クライアントの URL が登録のスコープ内にある場合、アクティブワーカーは ServiceWorkerClient (en-US) を制御します(ServiceWorkerContainer.register を最初に呼び出したときに設定した scope オプション)。
ServiceWorkerRegistration.navigationPreload 読取専用
現在のサービスワーカー登録に関連する NavigationPreloadManager のインスタンスを返します。
ServiceWorkerRegistration.pushManager 読取専用
購読申し込み、アクティブな購読の取得、プッシュの許可状況へのアクセスなど、プッシュの購読を管理するための PushManager インターフェイスへの参照を返します。
ServiceWorkerRegistration.sync 読取専用
バックグラウンド同期プロセスを管理する SyncManager インターフェイスへの参照を返します。

未実装プロパティ

serviceWorkerRegistration.periodicSync 読取専用
定期的なバックグラウンド同期プロセスを管理する PeriodicSyncManager (en-US) インターフェイスへの参照を返します。 これは、ある時点でサービスワーカーの説明でアイデアとして言及されましたが、まだどこにも実装されていません。

イベントハンドラー

ServiceWorkerRegistration.onupdatefound 読取専用
タイプが updatefound のイベントが発生するたびに呼び出される EventListener のプロパティ。 ServiceWorkerRegistration.installing プロパティが新しいサービスワーカーを取得するたびに発生します。

メソッド

また、その親インターフェースである EventTarget からメソッドを実装します。

ServiceWorkerRegistration.getNotifications()
Notification オブジェクトの配列に解決される Promise を返します。
ServiceWorkerRegistration.showNotification()
要求したタイトルの通知を表示します。
ServiceWorkerRegistration.update()
サービスワーカーの更新されたバージョンを、キャッシュを調べずに、サーバーでチェックします。
ServiceWorkerRegistration.unregister()
サービスワーカー登録を解除し、Promise を返します。 サービスワーカーは、登録が解除される前に進行中の操作を完了します。

この例では、コードはまずブラウザーがサービスワーカーをサポートしているかどうかをチェックし、サポートしている場合はそれを登録します。 次に、updatefound リスナーを追加します。 このリスナーでは、サービスワーカー登録を使用して、サービスワーカーの状態のさらなる変更をリッスンします。 サービスワーカーが最後に登録されてから変更されていない場合、updatefound イベントは発生しません。

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js')
  .then(function(registration) {
    registration.addEventListener('updatefound', function() {
      // updatefound が発生した場合は、新しいサービスワーカーを
      // インストールしていることを意味します。
      var installingWorker = registration.installing;
      console.log('新しいサービスワーカーをインストールしています:',
        installingWorker);

      // インストール中のサービスワーカーの状態の変更を、
      // installingWorker.onstatechange を介してリッスンできます
    });
  })
  .catch(function(error) {
    console.log('サービスワーカーの登録に失敗しました:', error);
  });
} else {
  console.log('サービスワーカーをサポートしていません。');
}

仕様

仕様 状態 コメント
Service Workers
ServiceWorkerRegistration の定義
草案 初期定義
Push API
PushManager の定義
草案 pushManager プロパティを追加。
Notifications API 現行の標準 showNotification() メソッドと getNotifications() メソッドを追加。
Web Background Synchronization 現行の標準 sync プロパティを追加。

ブラウザーの互換性

BCD tables only load in the browser

関連情報