<button id="pwaBtn" style="display:none; background:#00d2ff; color:white; padding:15px 25px; border-radius:12px; border:none; font-weight:bold; cursor:pointer; font-family:sans-serif; box-shadow: 0 4px 10px rgba(0,0,0,0.1);">
INSTALAR APP
</button>
<script>
let deferredPrompt;
const pwaBtn = document.getElementById("pwaBtn");
if("serviceWorker" in navigator){
window.addEventListener("load", () => {
navigator.serviceWorker.register("sw.js").catch(err => {
pwaBtn.setAttribute("data-incognito", "true");
});
});
}
let link = document.createElement("link");
link.rel = "manifest";
link.href = "manifest.json";
document.head.appendChild(link);
window.addEventListener("beforeinstallprompt", (e) => {
e.preventDefault();
deferredPrompt = e;
pwaBtn.style.display = "block";
});
window.addEventListener("load", () => {
const isStandalone = window.matchMedia("(display-mode: standalone)").matches;
if (!isStandalone) {
setTimeout(() => {
if (!deferredPrompt) { pwaBtn.style.display = "block"; }
}, 3000);
}
});
pwaBtn.addEventListener("click", async () => {
if (pwaBtn.getAttribute("data-incognito") === "true") {
alert("⚠️ Estás en modo Incógnito.\n\nLos navegadores bloquean la instalación de Apps en este modo. Para instalarla, abre la web en una pestaña normal.");
return;
}
if(deferredPrompt){
deferredPrompt.prompt();
const { outcome } = await deferredPrompt.userChoice;
if(outcome === "accepted") {
deferredPrompt = null;
pwaBtn.style.display = "none";
}
} else {
alert("Para instalar: \n- En Chrome/Edge: Busca el icono de instalar en la barra.\n- En Firefox: Usa el icono de la casa (+).\n- En iOS: Añadir a pantalla de inicio.");
}
});
</script>