--- title: ServiceWorkerRegistration slug: Web/API/ServiceWorkerRegistration tags: - API - Interface - Offline - Reference - Service Workers - Service worker API - ServiceWorkerRegistration - Workers translation_of: Web/API/ServiceWorkerRegistration ---
{{APIRef("Service Workers API")}}

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

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

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

プロパティ

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

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

未実装プロパティ

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

イベントハンドラー

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

メソッド

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

{{domxref("ServiceWorkerRegistration.getNotifications()")}}
{{domxref("Notification")}} オブジェクトの配列に解決される {{jsxref("Promise")}} を返します。
{{domxref("ServiceWorkerRegistration.showNotification()")}}
要求したタイトルの通知を表示します。
{{domxref("ServiceWorkerRegistration.update()")}}
サービスワーカーの更新されたバージョンを、キャッシュを調べずに、サーバーでチェックします。
{{domxref("ServiceWorkerRegistration.unregister()")}}
サービスワーカー登録を解除し、{{jsxref("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('サービスワーカーをサポートしていません。');
}

仕様

仕様 状態 コメント
{{SpecName('Service Workers', '#serviceworkerregistration', 'ServiceWorkerRegistration')}} {{Spec2('Service Workers')}} 初期定義
{{SpecName('Push API', '#dom-serviceworkerregistration-pushmanager', 'PushManager')}} {{Spec2('Push API')}} {{domxref("PushManager","pushManager")}} プロパティを追加。
{{SpecName('Web Notifications')}} {{Spec2('Web Notifications')}} {{domxref("ServiceWorkerRegistration.showNotification()","showNotification()")}} メソッドと {{domxref("ServiceWorkerRegistration.getNotifications()","getNotifications()")}} メソッドを追加。
{{SpecName('Background Sync')}} {{Spec2('Background Sync')}} {{domxref("ServiceWorkerRegistration.sync","sync")}} プロパティを追加。

ブラウザーの互換性

{{Compat("api.ServiceWorkerRegistration")}}

関連情報