// Detección de instalación en Android/PC y iOS
function isAppInstalled() {
return (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches)
|| (window.navigator.standalone === true); // iOS Safari
}
function isIOS() {
return /iphone|ipad|ipod/i.test(navigator.userAgent);
}
function hideInstallBtn() {
var btn = document.getElementById('installPwaBtn');
if (btn) btn.style.display = 'none';
}
// Ocultar el botón al cargar si está instalada
document.addEventListener('DOMContentLoaded', function() {
if (isAppInstalled()) {
hideInstallBtn();
}
// En iOS, si no está instalada, muestra el botón
else if (isIOS()) {
var btn = document.getElementById('installPwaBtn');
if (btn) btn.style.display = 'inline-block';
}
});
// Android/PC: mostrar el botón solo si beforeinstallprompt
let deferredPrompt = null;
window.addEventListener('beforeinstallprompt', (e) => {
if (isAppInstalled()) {
hideInstallBtn();
return;
}
e.preventDefault();
deferredPrompt = e;
var btn = document.getElementById('installPwaBtn');
if (btn) btn.style.display = 'inline-block';
});
document.getElementById('installPwaBtn').addEventListener('click', async () => {
if (deferredPrompt) {
deferredPrompt.prompt();
const { outcome } = await deferredPrompt.userChoice;
if (outcome === 'accepted') {
hideInstallBtn();
}
deferredPrompt = null;
}
// En iOS, puedes mostrar instrucciones aquí si quieres
});
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js');
}