80 votes

Impossible de trouver serviceWorker dans navigator maintenant

Depuis la nouvelle mise à jour de Google Chrome (version 69.0.3497.92 (build officiel) (64-bit)), je ne trouve plus le service serviceWorker dans le navigateur Navigator. En fait, je pouvais enregistrer mon Service Worker comme suit mais maintenant j'obtiens une erreur indiquant que serviceWorker ne peut pas être trouvé dans le navigateur :

if('serviceWorker' in navigator) {
    /*
    *
    * Enregistrer le Service Worker
    *
    * */
    navigator.serviceWorker.register('sw.js').then(function(registration) {
        console.log('Service Worker enregistré');
    });

} else console.log('Votre navigateur ne prend pas en charge le Service Worker !');

Comment puis-je maintenant utiliser à nouveau le Service Worker, ou comment puis-je le faire fonctionner à nouveau pour toutes les versions de Chrome ?

0 votes

Merci pour cela. J'avais complètement oublié la nécessité de https aussi et je ne pouvais pas comprendre pourquoi mon premier site fonctionnait (https) et pas l'autre (http). C'est quelques heures que je ne récupérerai jamais.

144voto

Josh Lee Points 53741

Servez votre page en HTTPS ou utilisez localhost. Les travailleurs de service nécessitent un Contexte Sécurisé.

(Page MDN, Page Chromium).

La valeur de window.isSecureContext ​​indique si les fonctionnalités [SecureContext] sont visibles ou masquées. (Cela est true sur une URL file:// et l'API serviceWorker sera visible, mais elle ne fonctionnera pas, bien entendu.)

134voto

Sean256 Points 665

Si vous utilisez un hôte virtuel localement pour un domaine autre que localhost, vous pouvez indiquer à Chrome de traiter votre domaine personnalisé comme "sécurisé".

Dans la barre d'adresse : chrome://flags/#unsafely-treat-insecure-origin-as-secure

Ensuite, ajoutez votre domaine comme http://mon-domaine-local.test

Cliquez sur activer et cliquez sur le bouton de redémarrage.

4 votes

Parfait pour moi! Merci

2 votes

Réponse parfaite pour moi aussi

1 votes

Merci, cela a également fonctionné pour moi

5voto

meydlo Points 1

Une autre raison pourrait être d'exécuter un navigateur en mode privé

0 votes

Veuillez vérifier la question et la poser à nouveau car les informations fournies ne sont pas suffisantes pour comprendre et répondre.

0 votes

Salut meydlo. Veuillez lire Comment répondre et essayer de modifier ceci en une réponse claire et utile.

2voto

Masoud Mohajeri Points 19

Au lieu de http://**192.168.1.105**:8080/ aller à http://**localhost**:8080/ ça a fonctionné pour moi

1voto

Daniya Niazi Points 39

Allez dans les paramètres de vscode dans l'option utilisateur > Extension faites défiler vers le bas jusqu'à la configuration du serveur en direct

définissez votre hôte sur localhost --Capture d'écran Définir l'hôte sur local host

Maintenant, faites défiler vers le bas et décochez l'option utiliser l'IP locale --Capture d'écran décocher IP locale

allez dans vos paramètres json de port et définissez le port sur 8080 --Capture d'écran paramètres json définir le port sur 8080 Allez en direct et vérifiez la console

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X