Vous lisez la version anglaise de ce contenu car il n’existe pas encore de traduction dans cette langue. Aidez-nous à traduire cet article !
Cette fonction est expérimentale
Puisque cette fonction est toujours en développement dans certains navigateurs, veuillez consulter le tableau de compatibilité pour les préfixes à utiliser selon les navigateurs.
Il convient de noter qu'une fonctionnalité expérimentale peut voir sa syntaxe ou son comportement modifié dans le futur en fonction des évolutions de la spécification.
L'interface Client
de l'API ServiceWorker réprésente la portée d'un client service worker. Un client est soit un document dans un contexte de navigation ou un SharedWorker
, controllé par un worker actif. Un objet client agit comme une capture instantannée de la représentation de son client service worker associé dans la porté de ce service worker.
Méthodes
Client.postMessage()
- Permet à un service worker d'envoyer un message à un
ServiceWorkerClient.
Propriétés
Client.frameType
Lecture seule- Indique le type de contexte de navigation du client courant. Cette valeur peut être
auxiliary
,top-level
,nested
, ornone
. Client.id
Lecture seule- Retourne l'identifiant universellement unique de l'objet
Client
. 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
Spécification | Status | Commentaire |
---|---|---|
Service Workers La définition de 'Client' dans cette spécification. |
Version de travail | Définition initiale |
Compatibilité des navigateurs
Fonction | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Support de base | 40.0 | 44.0 (44.0) | Pas de support | ? | Pas de support |
Fonction | Android | Firefox Mobile (Gecko) | Firefox OS | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Support de base | ? | 44.0 (44.0) | ? | Pas de support | ? | Pas de support | ? |
Note pour Chrome
La propriété frameType
n'est pas supportée sur Chrome 43.0.