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
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 .
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.