let deferredPrompt; /* ----------------------------- ANDROID / CHROME INSTALL FLOW ------------------------------*/ window.addEventListener("beforeinstallprompt", (e) => { e.preventDefault(); deferredPrompt = e; // Prevent duplicate banner if (document.getElementById("install-banner")) return; showInstallBanner({ message: '📱 Install Quality App?', buttonText: 'Install', onClick: async () => { deferredPrompt.prompt(); const { outcome } = await deferredPrompt.userChoice; console.log("User install choice:", outcome); deferredPrompt = null; } }); }); // /* ----------------------------- // IOS SAFARI MANUAL INSTALL // ------------------------------*/ // function isIosSafari() { // return ( // /iP(ad|hone|od)/.test(navigator.userAgent) && // /Safari/.test(navigator.userAgent) && // !/CriOS|FxiOS|OPiOS/.test(navigator.userAgent) // ); // } // function isInStandaloneMode() { // return window.navigator.standalone == true; // } // document.addEventListener("DOMContentLoaded", () => { // if ( // isIosSafari() && // !isInStandaloneMode() && // !localStorage.getItem("iosInstallShown") // ) { // showInstallBanner({ // message: '📱 Install Quality App
Tap Share ⬆️ → Add to Home Screen', // buttonText: 'Got it', // onClick: () => { // localStorage.setItem("iosInstallShown", "1"); // } // }); // } // }); /* ----------------------------- COMMON INSTALL BANNER UI ------------------------------*/ function showInstallBanner({ message, buttonText, onClick }) { if (document.getElementById("install-banner")) return; const banner = document.createElement("div"); banner.id = "install-banner"; banner.innerHTML = `
${message}
`; document.body.appendChild(banner); document.getElementById("installBtn").addEventListener("click", () => { banner.remove(); onClick(); }); } /* ----------------------------- APP INSTALLED EVENT ------------------------------*/ window.addEventListener("appinstalled", () => { console.log("🎉 App installed successfully!"); const banner = document.getElementById("install-banner"); if (banner) banner.remove(); });