Client

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.

L'interface Client de l'API ServiceWorker représente la portée d'exécution d'un Worker ou SharedWorker. Les clients Window sont représentés par le plus spécifique WindowClient. Vous pouvez obtenir les objets Client/WindowClient via les méthodes Clients.matchAll() et Clients.get().

Méthodes

Client.postMessage()

Permet à un service worker d'envoyer un message au ServiceWorkerClient.

Propriétés

Client.id Lecture seule

Retourne l'identifiant universellement unique de l'objet Client.

Client.type Lecture seule

Indique le type de contexte de navigation du client courant. Cette valeur peut être auxiliary, top-level, nested, or none.

Client.url Lecture seule

Retourne l'URL du client service worker courant.

Exemples

Ce code est basé sur un fragment pris d'un exemple d'envoi de message (voir l'exemple en ligne.) Ce code envoie une référence de message à laquelle le service worker peut répondre via Client.postMessage().

Ce message est contenu dans une promesse qui est résolue si la réponse ne contient pas d'erreur et est rejetée avec une erreur.

js
// client service worker (par exemple un document)
function sendMessage(message) {
  return new Promise(function (resolve, reject) {
    // Notez que c'est la version du ServiceWorker.postMessage
    navigator.serviceWorker.controller.postMessage(message);
    window.serviceWorker.onMessage = function (e) {
      resolve(e.data);
    };
  });
}

// Contrôle du service worker
self.addEventListener("message", function (e) {
  // e.source est un object client
  e.source.postMessage("Hello! Your message was: " + e.data);
});

Spécifications

Specification
Service Workers
# client-interface

Compatibilité des navigateurs

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Client
frameType
id
postMessage
type
url

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Voir aussi