- Actualizar fechaActualizacion en manual-index.ts (100+ capítulos) - Actualizar fechas en archivos .md del manual (public/manual/) - Actualizar fechas en documentación (docs/) - Actualizar fechas en páginas legales (Privacidad, Descargo, AvisoLegal) - Actualizar fechas en scripts de limpieza - Reemplazar todas las referencias de 2024-12-XX a 2025-12-23 - Reemplazar '19 de diciembre de 2024' a '23 de diciembre de 2025'
3.5 KiB
3.5 KiB
✅ Resumen: PWA y Sistema de Actualizaciones
Fecha: 2025-12-23
✅ MEJORAS IMPLEMENTADAS
1. Service Worker Mejorado (public/sw.js)
- ✅ Versión de cache:
CACHE_VERSION = 'v1.0.1'(incrementar para forzar actualización) - ✅ Cache First para assets estáticos (offline-first)
- ✅ Network First para HTML (permite actualizaciones)
- ✅ Cache automático de imágenes en
/assets/infografias/ - ✅ Limpieza automática de caches antiguos
2. Sistema de Actualizaciones (src/main.tsx)
- ✅ Registro mejorado:
updateViaCache: 'none'(siempre verifica actualizaciones) - ✅ Verificación periódica: Cada hora
- ✅ Verificación al recuperar foco: Cuando vuelves a la app
- ✅ Detección de nueva versión: Escucha eventos
updatefound
3. Hook useServiceWorker (src/hooks/useServiceWorker.ts)
- ✅ Estado del SW: registration, updateAvailable, offline
- ✅ Funciones: updateServiceWorker(), reloadPage()
- ✅ Detección automática de actualizaciones
4. Componente UpdateNotification (src/components/layout/UpdateNotification.tsx)
- ✅ Banner visual cuando hay actualización
- ✅ Botón "Actualizar ahora" para aplicar actualización
- ✅ Botón "Más tarde" para posponer
- ✅ Integrado en
App.tsx
5. Manifest Mejorado (public/manifest.json)
- ✅ Iconos adicionales (192x192, 512x512)
- ✅ Configuración completa para instalación PWA
🔄 CÓMO FUNCIONA
Flujo de Actualización
-
Desarrollo:
- Cambias código
- Cambias
CACHE_VERSIONensw.js(ej:v1.0.1→v1.0.2) - Haces build:
npm run build - Subes a servidor
-
Usuario abre la app:
- El navegador detecta que
sw.jscambió - Descarga la nueva versión del SW
- La instala en segundo plano
- El navegador detecta que
-
Nueva versión instalada:
- El hook
useServiceWorkerdetectaupdateAvailable = true - Se muestra el banner de actualización
- El usuario puede actualizar ahora o más tarde
- El hook
-
Usuario hace clic en "Actualizar ahora":
- Se envía mensaje
SKIP_WAITINGal SW - El SW se activa inmediatamente
- Se recarga la página
- Se crea nuevo cache con nueva versión
- Se elimina cache antiguo
- Se envía mensaje
🧪 VERIFICACIÓN
Test Rápido
# 1. Build actual
npm run build
# 2. Preview
npm run preview
# 3. Abrir en navegador
# 4. DevTools > Application > Service Workers
# Verificar: SW registrado y activo
# 5. Cambiar CACHE_VERSION en public/sw.js
# 6. Build de nuevo
npm run build
# 7. Recargar página en navegador
# Verificar: Aparece banner de actualización
📋 CHECKLIST
- Service Worker configurado
- Sistema de actualizaciones implementado
- Hook useServiceWorker creado
- Componente UpdateNotification creado
- Integrado en App.tsx
- Manifest mejorado
- Build funciona correctamente
- Test en navegador (requiere servidor)
- Test offline (requiere servidor)
- Test de actualización (requiere servidor)
🎯 PRÓXIMOS PASOS
-
Probar en servidor real:
- Desplegar en servidor
- Verificar que SW se registra
- Verificar que actualizaciones funcionan
-
Opcional: Indicador offline:
- Añadir indicador visual cuando está offline
- Mostrar en Header o BottomNav
-
Opcional: Sincronización:
- Sincronizar datos cuando vuelve la conexión
- (Requiere backend)
Estado: ✅ COMPLETADO - Sistema de actualizaciones implementado y listo para probar