sw-fe/src/pwaInstall.js

34 lines
993 B
JavaScript

// src/pwaInstall.js
let deferredPrompt = null;
let promptShown = false; // Flag pour n'afficher qu'une fois
window.addEventListener('beforeinstallprompt', (e) => {
e.preventDefault();
deferredPrompt = e;
console.log('PWA install prompt ready');
// Affiche le prompt automatiquement après 5 secondes (une seule fois)
setTimeout(() => {
if (!promptShown && deferredPrompt) {
deferredPrompt.prompt();
promptShown = true;
deferredPrompt.userChoice.then((choice) => {
console.log('Install outcome:', choice.outcome);
deferredPrompt = null;
});
}
}, 5000); // 5000 ms = 5 secondes
});
export function promptInstall() {
if (deferredPrompt && !promptShown) {
deferredPrompt.prompt();
promptShown = true;
deferredPrompt.userChoice.then((choice) => {
console.log('Install outcome:', choice.outcome);
deferredPrompt = null;
});
} else {
console.log('No install prompt available or already shown');
}
}