ServiceWorkerRegistration
Baseline
広く利用可能
*
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2018年4月以降、すべてのブラウザーで利用可能です。
* この機能の一部は、対応レベルにばらつきがある場合があります。
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
メモ: この機能はウェブワーカー内で利用可能です。
ServiceWorkerRegistration は サービスワーカー API のインターフェイスで、サービスワーカー登録を表します。 同じオリジンを共有している 1 つ以上のページを制御するサービスワーカーを登録します。
サービスワーカー登録の存続期間は、対応するサービスワーカークライアントの存続期間内でそれらを表す ServiceWorkerRegistration オブジェクトの存続期間を超えています。 ブラウザーは、アクティブな ServiceWorkerRegistration オブジェクトの永続的なリストを維持します。
インスタンスプロパティ
親インターフェイスである EventTarget から継承したプロパティもあります。
ServiceWorkerRegistration.active読取専用-
状態がアクティブ化中 (
activating) またはアクティブ化済み (activated) のサービスワーカーを返します。 これは最初はnullに設定されています。 クライアントの URL が登録のスコープ内にある場合、アクティブワーカーはClientを制御します(ServiceWorkerContainer.registerを最初に呼び出したときに設定したscopeオプション)。 ServiceWorkerRegistration.backgroundFetch読取専用-
バックグラウンドフェッチ操作を管理する
BackgroundFetchManagerオブジェクトへの参照を返します。 -
CookieStoreManagerインターフェイスへの参照を返します。これにより、クッキーの変更イベントを登録したり解除したりすることができます。 ServiceWorkerRegistration.index読取専用-
ContentIndexインターフェイスの参照を返し、これによってオフライン表示のコンテンツの索引付けを管理します。 ServiceWorkerRegistration.installing読取専用-
状態がインストール中 (
installing) のサービスワーカーを返します。 これは最初はnullに設定されています。 -
現在のサービスワーカー登録に関連する
NavigationPreloadManagerのインスタンスを返します。 ServiceWorkerRegistration.paymentManager読取専用-
決済アプリの様々な機能を管理するために使用する、決済アプリの
PaymentManagerのインスタンスを返します。 ServiceWorkerRegistration.periodicSync読取専用-
PeriodicSyncManagerインターフェイスへの参照を返します。これにより、特定の間隔で実行されるタスクを登録することができます。 ServiceWorkerRegistration.pushManager読取専用-
購読申し込み、アクティブな購読の取得、プッシュの許可状況へのアクセスなど、プッシュの購読を管理するための
PushManagerインターフェイスへの参照を返します。 ServiceWorkerRegistration.scope読取専用-
サービスワーカーの登録範囲、つまりサービスワーカーが制御できる URL の範囲を定義する URL を表す文字列を返します。
ServiceWorkerRegistration.sync読取専用-
バックグラウンド同期プロセスを管理する
SyncManagerインターフェイスへの参照を返します。 ServiceWorkerRegistration.updateViaCache読取専用-
サービスワーカーや、
importScripts()を通じてインポートされたスクリプトを更新しようとする際、ブラウザーが HTTP キャッシュを参照する条件を決定するために使用される設定の値を返します。値は、imports、all、noneのいずれかになります。 ServiceWorkerRegistration.waiting読取専用-
状態がインストール済み (
installed) のサービスワーカーを返します。 これは最初はnullに設定されています。
インスタンスメソッド
親インターフェイスである EventTarget から継承したメソッドもあります。
ServiceWorkerRegistration.getNotifications()-
現在のオリジンから、現在のサービスワーカー登録を通じて作成された通知のリストを、作成された順に返します。
ServiceWorkerRegistration.showNotification()-
要求したタイトルの通知を表示します。
ServiceWorkerRegistration.unregister()-
サービスワーカー登録を解除し、
Promiseを返します。 サービスワーカーは、登録が解除される前に進行中の操作を完了します。 ServiceWorkerRegistration.update()-
サービスワーカーの更新されたバージョンを、キャッシュを調べずに、サーバーでチェックします。
イベント
updatefound-
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("サービスワーカーに対応していません。");
}
仕様書
| 仕様書 |
|---|
| Service Workers Nightly> # serviceworkerregistration-interface> |
| Push API> # extensions-to-the-serviceworkerregistration-interface> |