--- title: Clients slug: Web/API/Clients tags: - API - Clients - Interface - Reference - Service Workers - Service worker API - ServiceWorker - Workers translation_of: Web/API/Clients ---
{{APIRef("Service Workers API")}}
Clients インターフェイスは、{{domxref("Client")}} オブジェクトへのアクセスを提供します。 これは、サービスワーカー内で {{domxref("ServiceWorkerGlobalScope", "self")}}.clients を介してアクセスします。
次の例は、ユーザーが通知をクリックしたときに既存のチャットウィンドウを表示するか、新しいチャットウィンドウを作成します。
addEventListener('notificationclick', event => {
event.waitUntil(async function() {
const allClients = await clients.matchAll({
includeUncontrolled: true
});
let chatClient;
// チャットウィンドウが既に開いているかどうかを確認します。
for (const client of allClients) {
const url = new URL(client.url);
if (url.pathname == '/chat/') {
// よし、使ってみよう!
client.focus();
chatClient = client;
break;
}
}
// 既存のチャットウィンドウが見つからなかった場合、
// 新しいウィンドウを開きます。
if (!chatClient) {
chatClient = await clients.openWindow('/chat/');
}
// クライアントにメッセージを送ります。
chatClient.postMessage("新しいチャットメッセージ!");
}());
});
| 仕様 | 状態 | コメント |
|---|---|---|
| {{SpecName('Service Workers', '#clients', 'Clients')}} | {{Spec2('Service Workers')}} | 初期定義 |
{{Compat("api.Clients")}}