J'ai implémenté PWA pour mon site statique. service worker s’inscrit avec succès et ma page fonctionne également en mode hors connexion comme prévu, mais le vrai problème réside dans l’ajout à Écran d’accueil
J'ai inclus manifest.json avec les icônes appropriées et je ne vois toujours pas l'ajout d'un écran d'accueil s'affichera et en essayant de pousser l'ajout à l'écran d'accueil de seulement inspecté je peux voir le popup
Cette URL de mon site: https://www.savesoftinc.com/
Manifeste JSON:
{
"name": "Save Soft",
"short_name": "SaveSoft",
"start_url": ".",
"display": "standalone",
"background_color": "#fff",
"theme_color": "#0EC3F7",
"description": "IT Services & Solutions.",
"icons": [
{
"src": "\/Android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/Android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/Android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/Android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/Android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/Android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
},
{
"src": "\/ms-icon-512x512.png",
"sizes": "512x512",
"type": "image\/png",
"density": "5.0"
}
]
}
Et aussi essayez le code ci-dessous pour faire apparaître la bannière comme suggéré par Google
window.addEventListener('beforeinstallprompt', (e) => {
// Prevent Chrome 67 and earlier from automatically showing the Prompt
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
// Update UI notify the user they can add to home screen
btnAdd.style.display = 'block';
});
btnAdd.addEventListener('click', (e) => {
// hide our user interface that shows our A2HS button
btnAdd.style.display = 'none';
// Show the Prompt
deferredPrompt.Prompt();
// Wait for the user to respond to the Prompt
deferredPrompt.userChoice
.then((choiceResult) => {
if (choiceResult.outcome === 'accepted') {
console.log('User accepted the A2HS Prompt');
} else {
console.log('User dismissed the A2HS Prompt');
}
deferredPrompt = null;
});
});
window.addEventListener('appinstalled', (evt) => {
app.logEvent('a2hs', 'installed');
});
mais cela montre une erreur:
Uncaught ReferenceError: btnAdd n'est pas défini
ref: https://developers.google.com/web/fundamentals/app-install-banners/
La première étape du test de pop-up automatique Add to Home Screen (A2HS) consiste à utiliser les outils de vérification des phares.
Vous devez exécuter l’audit PWA et y corriger les avertissements jusqu’à ce que vous voyiez
--- "L'utilisateur peut être invité à installer Web App"
Les outils d’audit de phare sont disponibles sous forme d’onglet dans les outils Chrome dev) ou sous forme d’extension Chrome.
L’extension présente généralement les fonctionnalités les plus récentes.
Une fois que vous voyez ce message, vous pouvez tester le message contextuel automatique sur Chrome Bureau et Android (Chrome & Edge)
Éléments importants à noter
Après l'avoir vu pour la première fois, vous aurez probablement besoin de vider complètement le cache de votre navigateur pour voir apparaître la fenêtre contextuelle.
Edge - supprimer le raccourci
Chrome Desktop - désinstallez l’application ici: chrome: // apps /
Crome Android - désinstallez WebApk dans vos applications
Une fois que vous savez que le menu contextuel automatique A2HS fonctionne, vous pouvez (si vous le souhaitez) intercepter le menu contextuel automatique afin de le rendre moins gênant pour vos utilisateurs. Montrez-leur un bouton pour leur faire savoir qu'ils peuvent utiliser A2HS lorsque cela leur convient.
Comme décrit ici
https://developers.google.com/web/fundamentals/app-install-banners/
Voici mon testeur pour A2HS .
Vous verrez le bouton afficher à la place de la fenêtre contextuelle automatique.
Toutes les instructions sont fournies à l'adresse suivante: https://developers.google.com/web/fundamentals/app-install-banners/
Vous trouverez ci-dessous les points pour la bannière 'Ajouter à l'écran d'accueil' de PWA.
(par exemple, '/ public/home' est dans la portée de '/' ou '/ public /')
.
A inscrit un travailleur de service avec un gestionnaire d'événements fetch. par exemple.
self.addEventListener('fetch', function(event) {})
Actuellement, l'utilisateur a interagi avec le domaine pendant au moins 30 secondes.
Le code est placé pour charger le service worker dans le fichier JS racine.
function registerServiceWorker() { if ('serviceWorker' in navigator) { navigator.serviceWorker.register('/serviceWorker.js') // .then(function(reg){ console.log("service worker registered") }).catch(function(err) { console.log(err) }); } else { console.log("Could not find serviceWorker in navigator") } } registerServiceWorker()
Le fichier manifeste de la page HTML est ajouté
<link rel="manifest" href="/pwa/manifest.json">
La bannière n'a pas été supprimée plus tôt (n'apparaîtra pas avant 3 mois comme indiqué dans le guide pour mini-info-barre ). Vous pouvez le ramener en supprimant les cookies.
Essayez ci-dessous le code ..
let btnAdd = document.querySelector(".btnAdd"); // .btnAdd maybe id or class
qui est appliqué sur le bouton Invite personnalisé
btnAdd.style.display = "block";