web-dev-qa-db-fra.com

Le site ne peut pas être installé: aucun travailleur de service correspondant n'a été détecté

Hé, j'essaie de programmer mon premier pwa et j'ai le problème suivant:

lorsque je démarre mon application web, j'obtiens l'erreur suivante:

Le site ne peut pas être installé: aucun travailleur de service correspondant n'a été détecté. Vous devrez peut-être recharger la page ou vérifier que le technicien de service pour la page actuelle contrôle également l'URL de démarrage à partir du manifeste

Je pense que mon URL manifeste est correcte à cause de cela lien

manifest.json

"start_url": ".",
"display": "standalone",
"orientation": "portrait",
"theme_color": "#29BDBB",
"background_color": "#29BDBB"

et j'enregistre mon sw comme ceci:

if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('./sw.js').then(function(reg) {
    console.log('Successfully registered service worker', reg);
}).catch(function(err) {
    console.warn('Error whilst registering service worker', err);
});
}

J'ai obtenu mon sw de ici

J'essaie donc de créer une application web simple que je peux héberger avec firebase .

Quel est le problème? Merci de votre aide

18

Placez le fichier de script de service worker à la racine de votre site Web et définissez start_url à /, ou placez-le où vous voulez et utilisez la propriété scope et Service-Worker-Allowed En-tête HTTP comme dans mon autre réponse .

14
Ashraf Sabry

Le travailleur de service d'application de création de réactivité ne prend effet qu'en production, alors créez-le et servez-le localement pour tester que le travailleur de service fonctionne correctement.

Installez d'abord npm serve, si ce n'est pas déjà fait: npm i serve -g

Ensuite...

npm run build

serve -s build

Il est également probable qu'une fois que le technicien de service s'enregistre avec succès, mais quelque chose comme beforeinstallprompt peut ne pas être appelé. Si tel est le cas, publiez l'application en utilisant un hôte comme Firebase, qui servira le site sur https, puis essayez le beforeinstallprompt là-bas.

2
andimiya