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
, ornone
. 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.
// 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
BCD tables only load in the browser