Spec-Zone.ru › Web APIs

Клиенты

Базовая версия Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна только в работе с сервисами.

Интерфейс Clients предоставляет доступ к объектам Client. Доступ к нему осуществляется через self.clients в рамках службы.

Методы экземпляров

Clients.get()

Возвращает Promise для Client, соответствующего заданному id.

Clients.matchAll()

Возвращает Promise для массива объектов Client. Аргумент options позволяет управлять типами возвращаемых клиентов.

Clients.openWindow()

Открывает новое окно браузера для заданного URL и возвращает Promise для нового WindowClient.

Clients.claim()

Позволяет активному сервисному рабочему задать себя как controller для всех клиентов в рамках его scope.

Примеры

Следующий пример показывает существующее окно чата или создаёт новое, когда пользователь нажимает на уведомление.

addEventListener("notificationclick", (event) => {
  event.waitUntil(
    (async () => {
      const allClients = await clients.matchAll({
        includeUncontrolled: true,
      });

      let chatClient;

      // Let's see if we already have a chat window open:
      for (const client of allClients) {
        const url = new URL(client.url);

        if (url.pathname === "/chat/") {
          // Excellent, let's use it!
          client.focus();
          chatClient = client;
          break;
        }
      }

      // If we didn't find an existing chat window,
      // open a new one:
      if (!chatClient) {
        chatClient = await clients.openWindow("/chat/");
      }

      // Message the client:
      chatClient.postMessage("New chat messages!");
    })(),
  );
});

Спецификации

Спецификация
Сервисные рабочие
# clients-interface

Совместимость с браузерами

Рабочий стол Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
Clients 40 17 44 27 11.1 40 44 27 11.3 4.0 40
claim 42 17 44 29 11.1 42 44 29 11.3 4.0 42
get 51 17 45 38 11.1 51 45 41 11.3 5.0 51
matchAll
42Client объекты возвращаются в порядке последнего фокуса.
17Client объекты возвращаются в порядке последнего фокуса.
54
44–54До Firefox 54, Client объекты не возвращались в порядке последнего фокуса, как требуется спецификацией.
29 11.1
42Client объекты возвращаются в порядке последнего фокуса.
54
44–54До Firefox для Android 54, Client объекты не возвращались в порядке последнего фокуса, как требуется спецификацией.
29 11.3
4.0Client объекты возвращаются в порядке последнего фокуса.
42Client объекты возвращаются в порядке последнего фокуса.
openWindow
40["До Chrome 43, этот метод мог открывать только URL в том же домене.", "С Chrome 51, URL могут открываться внутри существующего контекста просмотра, предоставляемого автономным веб-приложением."]
17 44 38 11.1
40["До Chrome Android 43, этот метод мог открывать только URL в том же домене.", "С Chrome Android 51, URL могут открываться внутри существующего контекста просмотра, предоставляемого автономным веб-приложением."]
44 41 11.3
4.0["До Samsung Internet 4.0, этот метод мог открывать только URL в том же домене.", "С Samsung Internet 5.0, URL могут открываться внутри существующего контекста просмотра, предоставляемого автономным веб-приложением."]
40["До WebView Android 43, этот метод мог открывать только URL в том же домене.", "С WebView Android 51, URL могут открываться внутри существующего контекста просмотра, предоставляемого автономным веб-приложением."]

См. также

  • Использование сервисных рабочих

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Clients

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API