sw-fe/public/pwaInstall.js

28 lines
1007 B
JavaScript

// src/pwaInstall.js
let deferredPrompt = null;
// Écoute l'événement natif PWA (se déclenche quand Chrome pense que l'app est installable)
window.addEventListener('beforeinstallprompt', (e) => {
// Empêche le prompt auto (on veut le contrôler avec le bouton)
e.preventDefault();
deferredPrompt = e;
console.log('PWA install prompt ready - waiting for user click');
});
// Fonction appelée quand on clique sur le bouton "Install"
export function promptInstall() {
if (deferredPrompt) {
deferredPrompt.prompt(); // Affiche le prompt natif "Add to home screen"
deferredPrompt.userChoice.then((choiceResult) => {
if (choiceResult.outcome === 'accepted') {
console.log('User accepted PWA install');
} else {
console.log('User dismissed PWA install');
}
deferredPrompt = null;
});
} else {
console.log('No install prompt available yet - try again later');
alert('PWA installation not ready yet. Try again in a few seconds.');
}
}