Clients

Clients インターフェイスは、Client オブジェクトへのアクセスを提供します。 これは、サービスワーカー内で self.clients を介してアクセスします。

メソッド

Clients.get()
指定された id に一致する ClientPromise を返します。
Clients.matchAll()
Client オブジェクトの配列の Promise を返します。 options 引数を使用すると、返されるクライアントの種類を制御できます。
Clients.openWindow()
指定された URL の新しいブラウザーウィンドウを開き、新しい WindowClientPromise を返します。
Clients.claim()
アクティブなサービスワーカーが自身の scope 内のすべてのクライアントの controller として自分自身を設定できるようにします。

次の例は、ユーザーが通知をクリックしたときに既存のチャットウィンドウを表示するか、新しいチャットウィンドウを作成します。

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("新しいチャットメッセージ!");
  }());
});

仕様

仕様 状態 コメント
Service Workers
Clients の定義
草案 初期定義

ブラウザーの互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
Clients
実験的
Chrome 完全対応 40Edge 完全対応 ≤79Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR).
IE 未対応 なしOpera 完全対応 27Safari 未対応 なしWebView Android 完全対応 40Chrome Android 完全対応 40Firefox Android 完全対応 44Opera Android 完全対応 27Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
claim
実験的
Chrome 完全対応 42Edge 完全対応 ≤79Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR).
IE 未対応 なしOpera 完全対応 29Safari 未対応 なしWebView Android 完全対応 42Chrome Android 完全対応 42Firefox Android 完全対応 44Opera Android 完全対応 29Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
get
実験的
Chrome 完全対応 51Edge 完全対応 ≤79Firefox 完全対応 45
補足
完全対応 45
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR).
IE 未対応 なしOpera 完全対応 38Safari 未対応 なしWebView Android 未対応 なしChrome Android 完全対応 51Firefox Android 完全対応 45Opera Android 完全対応 41Safari iOS 未対応 なしSamsung Internet Android 完全対応 5.0
matchAll
実験的
Chrome 完全対応 47
補足
完全対応 47
補足
補足 Client objects returned in most recent focus order.
Edge 完全対応 ≤79
補足
完全対応 ≤79
補足
補足 Client objects returned in most recent focus order.
Firefox 完全対応 44
補足
完全対応 44
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR).
完全対応 54
補足
補足 Client objects returned in most recent focus order.
IE 未対応 なしOpera 完全対応 32Safari 未対応 なしWebView Android 完全対応 47
補足
完全対応 47
補足
補足 Client objects returned in most recent focus order.
Chrome Android 完全対応 47
補足
完全対応 47
補足
補足 Client objects returned in most recent focus order.
Firefox Android 完全対応 44
完全対応 44
完全対応 54
補足
補足 Client objects returned in most recent focus order.
Opera Android 完全対応 32Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
補足
完全対応 4.0
補足
補足 Client objects returned in most recent focus order.
openWindow
実験的
Chrome 完全対応 40
完全対応 40
完全対応 42
補足
補足 Can only open URLs on the same origin.
完全対応 43
補足
補足 Can open any URL.
完全対応 51
補足
補足 URLs may open inside an existing browsing context provided by a standalone web app
Edge 完全対応 ≤79
完全対応 ≤79
完全対応 ≤79
補足
補足 Can only open URLs on the same origin.
完全対応 ≤79
補足
補足 Can open any URL.
完全対応 ≤79
補足
補足 URLs may open inside an existing browsing context provided by a standalone web app
Firefox 完全対応 45
補足
完全対応 45
補足
補足 Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR).
IE 未対応 なしOpera 完全対応 38Safari 未対応 なしWebView Android 完全対応 40
完全対応 40
完全対応 42
補足
補足 Can only open URLs on the same origin.
完全対応 43
補足
補足 Can open any URL.
完全対応 51
補足
補足 URLs may open inside an existing browsing context provided by a standalone web app
Chrome Android 完全対応 40
完全対応 40
完全対応 42
補足
補足 Can only open URLs on the same origin.
完全対応 43
補足
補足 Can open any URL.
完全対応 51
補足
補足 URLs may open inside an existing browsing context provided by a standalone web app
Firefox Android 完全対応 45Opera Android 完全対応 41Safari iOS 未対応 なしSamsung Internet Android 完全対応 4.0
完全対応 4.0
完全対応 5.0
補足
補足 URLs may open inside an existing browsing context provided by a standalone web app

凡例

完全対応  
完全対応
未対応  
未対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
実装ノートを参照してください。
実装ノートを参照してください。

関連情報