W3cubDocs

/DOM

WindowClient

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The WindowClient interface of the ServiceWorker API represents the scope of a service worker client that is a document in a browser context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources.

Methods

WindowClient inherits methods from its parent interface, Client.

WindowClient.focus()
Gives user input focus to the current client.
WindowClient.navigate()
Loads a specified URL into a controlled client page.

Properties

WindowClient inherits properties from its parent interface, Client.

WindowClient.focused Read only
A boolean that indicates whether the current client has focus.
WindowClient.visibilityState Read only
Indicates the visibility of the current client. This value can be one of hidden, visible, prerender, or unloaded.

Example

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

  // This looks to see if the current is already open and
  // focuses if it is
  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('/');
  }));
});

Specifications

Specification Status Comment
Service Workers
The definition of 'WindowClient' in that specification.
Editor's Draft Initial definition

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 42.0 44.0 (44.0)[1] No support ? No support
navigate() 49.0
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support No support No support 44.0 (44.0) (Yes) No support ? No support 42.0
navigate() No support No support 49.0

[1] Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WindowClient