WindowClient

Интерфейс WindowClient ServiceWorker API (en-US) представляет область действия клиента сервис-воркера, который представляет собой документ в контексте просмотра, управляемый активным исполнителем. Клиент сервис-воркера самостоятельно выбирает и использует сервис-воркера для собственной загрузки и загрузки подресурсов.

Методы

WindowClient наследует методы от своего родительского интерфейса Client (en-US).

WindowClient.focus() (en-US)

Фокусирует пользователя на текущем окне.

WindowClient.navigate() (en-US)

Загружает указанный URL-адрес на управляемую клиентскую страницу.

Свойства

WindowClient наследует методы от своего родительского интерфейса Client (en-US).

WindowClient.focused (en-US) Только для чтения

Логическое значение, указывающее, находится ли текущая страница в фокусе.

WindowClient.visibilityState (en-US) Только для чтения

Указывает, отображается ли текущая страница. Это значение может быть одним из "hidden" (скрыта), "visible" (отображена) или "prerender" (предварительно отрисована).

Пример

js
self.addEventListener("notificationclick", function (event) {
  console.log("On notification click: ", event.notification.tag);
  event.notification.close();

  // Проверяем, открыто ли окно и
  // сфокусированы ли на нем
  event.waitUntil(
    clients
      .matchAll({
        type: "window",
      })
      .then(function (clientList) {
        for (var i = 0; i < clientList.length; i++) {
          var client = clientList[i];
          if (client.url == "/" && "focus" in client) {
            client.focus();
            break;
          }
        }
        if (clients.openWindow) return clients.openWindow("/");
      }),
  );
});

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

Specification
Service Workers
# windowclient

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

BCD tables only load in the browser

Смотрите также