DOM

インターフェイス

ServiceWorkerRegistration インターフェイス

  編集:2022.04.08 by T.A.

MS

Service Worker API の ServiceWorkerRegistration インターフェイスは、サービスワーカー登録を表します。あなたは同じオリジンを共有する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 インターフェイスへの参照を返します。これは、ある時点でサービスワーカーの説明でアイデアとして言及されましたが、まだどこにも実装されていません。
メソッド

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

ServiceWorkerRegistration.getNotifications()
Notification オブジェクトの配列に解決される Promise を返します。
ServiceWorkerRegistration.showNotification()
要求したタイトルの通知を表示します。
ServiceWorkerRegistration.update()
サービスワーカーの更新されたバージョンを、キャッシュを調べずに、サーバーでチェックします。
ServiceWorkerRegistration.unregister()
サービスワーカー登録を解除し、Promise を返します。サービスワーカーは、登録が解除される前に進行中の操作を完了します。
イベントハンドラー
ServiceWorkerRegistration.onupdatefound 読取専用
タイプが updatefound のイベントが発生するたびに呼び出される EventListener のプロパティ。ServiceWorkerRegistration.installing プロパティが新しいサービスワーカーを取得するたびに発生します。
この例では、コードはまずブラウザーがサービスワーカーをサポートしているかどうかをチェックし、サポートしている場合はそれを登録します。次に、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('サービスワーカーをサポートしていません。');
}

テスト
HTML:

ここに表示
スクリプト組み込み:



スクリプト:


スクリプト:



表示内容:
表示内容: