web-dev-qa-db-fra.com

Échec de l'inscription du technicien de service

Je travaille actuellement sur un travailleur de service pour gérer la notification Push dans le navigateur. Actuellement, je rencontre cette "erreur d'échec de l'enregistrement du logiciel". Quelqu'un peut-il aider avec ce problème? Vérifier client1.html et service-worker.js fichier ci-dessous:

ERREUR:

L'enregistrement SW a échoué avec l'erreur SecurityError: Impossible d'enregistrer un ServiceWorker: Le protocole URL de l'origine actuelle ("null") n'est pas pris en charge.

service-worker.js

console.log('Started', self);
self.addEventListener('install', function(event) {
  self.skipWaiting();
  console.log('Installed', event);
});
self.addEventListener('activate', function(event) {
console.log('Activated', event);
});
self.addEventListener('Push', function(event) {
  console.log('Push message received', event);
}); 

client1.html

  <!doctype html>
  <html>
  <head>
  <title>Client 1</title>
  </head>
  <body>
  <script>
     if('serviceWorker' in navigator){
        // Register service worker
        navigator.serviceWorker.register('service-worker.js').then(function(reg){
            console.log("SW registration succeeded. Scope is "+reg.scope);
        }).catch(function(err){
            console.error("SW registration failed with error "+err);
        });
    }
  </script>
  </body>
  </html>
17
Saugat Bhattarai

Résolu: La première chose est que le service worker ne fonctionne qu'en mode sécurisé soit en https soit en localhost. Il ne fonctionne pas dans les ressources locales comme file: // ou http.

et le deuxième problème était lors de l'inscription.

     navigator.serviceWorkerContainer.register('service-worker.js').then(function(reg){
22
Saugat Bhattarai

Utilisez chrome webserver, pour exécuter l'application ou simplement une simple commande dans le terminal (Mac) suffirait. python -m SimpleHTTPServer

3
geekme