ServiceWorkerRegistration
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2018年4月.
* Some parts of this feature may have varying levels of support.
ServiceWorkerRegistration は サービスワーカー API のインターフェイスで、サービスワーカー登録を表します。 同じオリジンを共有している 1 つ以上のページを制御するサービスワーカーを登録します。
サービスワーカー登録の存続期間は、対応するサービスワーカークライアントの存続期間内でそれらを表す ServiceWorkerRegistration オブジェクトの存続期間を超えています。 ブラウザーは、アクティブな ServiceWorkerRegistration オブジェクトの永続的なリストを維持します。
メモ: この機能はウェブワーカーで利用できます。
インスタンスプロパティ
親インターフェイスである EventTarget から継承したプロパティも実装しています。
ServiceWorkerRegistration.active読取専用-
状態がアクティブ化中 (
activating) またはアクティブ化済み (activated) のサービスワーカーを返します。 これは最初はnullに設定されています。 クライアントの URL が登録のスコープ内にある場合、アクティブワーカーはClientを制御します(ServiceWorkerContainer.registerを最初に呼び出したときに設定したscopeオプション)。 ServiceWorkerRegistration.backgroundFetch読取専用 Experimental-
バックグラウンドフェッチ操作を管理する
BackgroundFetchManagerオブジェクトへの参照を返します。 ServiceWorkerRegistration.index読取専用-
ContentIndexインターフェイスの参照を返し、これによってオフライン表示のコンテンツの索引付けを管理します。 ServiceWorkerRegistration.installing読取専用-
状態がインストール中 (
installing) のサービスワーカーを返します。 これは最初はnullに設定されています。 -
現在のサービスワーカー登録に関連する
NavigationPreloadManagerのインスタンスを返します。 ServiceWorkerRegistration.paymentManagerExperimental-
決済アプリの様々な機能を管理するために使用する、決済アプリの
PaymentManagerのインスタンスを返します。 ServiceWorkerRegistration.pushManager読取専用-
購読申し込み、アクティブな購読の取得、プッシュの許可状況へのアクセスなど、プッシュの購読を管理するための
PushManagerインターフェイスへの参照を返します。 ServiceWorkerRegistration.scope読取専用-
サービスワーカー登録の一意の識別子を返します。 これは、
ServiceWorkerを登録する文書と同じオリジンにある必要があります。 ServiceWorkerRegistration.sync読取専用 Experimental-
バックグラウンド同期プロセスを管理する
SyncManagerインターフェイスへの参照を返します。 ServiceWorkerRegistration.waiting読取専用-
状態がインストール済み (
installed) のサービスワーカーを返します。 これは最初はnullに設定されています。 ServiceWorkerRegistration.updateViaCache読取専用-
サービスワーカースクリプトを更新する際に使用するキャッシュ戦略を示す文字列を返します。
imports,all,noneの何れかとなります。
インスタンスメソッド
親インターフェイスである EventTarget から継承したメソッドも実装しています。
ServiceWorkerRegistration.getNotifications()-
Notificationオブジェクトの配列に解決されるPromiseを返します。 ServiceWorkerRegistration.showNotification()-
要求したタイトルの通知を表示します。
ServiceWorkerRegistration.unregister()-
サービスワーカー登録を解除し、
Promiseを返します。 サービスワーカーは、登録が解除される前に進行中の操作を完了します。 ServiceWorkerRegistration.update()-
サービスワーカーの更新されたバージョンを、キャッシュを調べずに、サーバーでチェックします。
イベント
updatefound-
タイプが
updatefoundのイベントが発生するたびに呼び出される /ja/docs/Web/API/EventListener のプロパティ。ServiceWorkerRegistration.installingプロパティが新しいサービスワーカーを取得するたびに発生します。
例
この例では、コードはまずブラウザーがサービスワーカーをサポートしているかどうかをチェックし、サポートしている場合はそれを登録します。 次に、updatefound リスナーを追加します。 このリスナーでは、サービスワーカー登録を使用して、サービスワーカーの状態のさらなる変更をリッスンします。 サービスワーカーが最後に登録されてから変更されていない場合、updatefound イベントは発生しません。
if ("serviceWorker" in navigator) {
navigator.serviceWorker
.register("/sw.js")
.then((registration) => {
registration.addEventListener("updatefound", () => {
// updatefound が発生した場合は、新しいサービスワーカーを
// インストールしていることを意味します。
const installingWorker = registration.installing;
console.log(
"新しいサービスワーカーをインストールしています:",
installingWorker,
);
// インストール中のサービスワーカーの状態の変更を、
// installingWorker.onstatechange を介して待ち受けできます
});
})
.catch((error) => {
console.error(`サービスワーカーの登録に失敗しました: ${error}`);
});
} else {
console.error("サービスワーカーに対応していません。");
}
仕様書
| Specification |
|---|
| Service Workers> # serviceworkerregistration-interface> |
| Push API> # extensions-to-the-serviceworkerregistration-interface> |
ブラウザーの互換性
Loading…