- Fase 1: Eliminar archivos innecesarios (logs, builds, node_modules) - Fase 2: Mover backups y duplicados a revisión: - _BACKUP_MD/ (203 archivos) - MANUAL_TES_DIGITAL/ (110 archivos) - imagenes-pendientes/ (60 archivos) - Fase 3: Simplificar configuraciones (mover no usadas a config_backup/) - Fase 4: Consolidar documentación: - 13 documentos esenciales → docs/consolidado/ - 42 documentos → docs/archivo/ - README.md actualizado - Fase 5: Organizar scripts (mantener solo esenciales) - Fase 6: Reinstalación y verificación (npm install + build) - Corregir clave duplicada 'uso-tensiometro' en image-registry.ts - Total: 393 archivos movidos a revisión, 5 configuraciones archivadas, 55 documentos organizados - Build verificado y exitoso
5.1 KiB
5.1 KiB
✅ Verificación PWA y Actualizaciones
Fecha: 2024-12-19
✅ CONFIGURACIÓN ACTUAL
Service Worker (public/sw.js)
- ✅ Registrado en
src/main.tsx - ✅ Cache First para assets estáticos (offline-first)
- ✅ Network First para HTML (permite actualizaciones)
- ✅ Cache de imágenes automático (
/assets/infografias/) - ✅ Versión de cache:
v1.0.1(incrementar para forzar actualización)
Manifest (public/manifest.json)
- ✅ Configurado con nombre, descripción, colores
- ✅ Iconos definidos (favicon.svg, favicon.ico)
- ✅ Display: standalone
- ✅ Shortcuts para acceso rápido
Registro del SW (src/main.tsx)
- ✅ Registro automático al cargar la página
- ✅ Verificación de actualizaciones cada hora
- ✅ Verificación al recuperar foco (cuando vuelves a la app)
- ✅ Detección de nueva versión instalada
🔄 SISTEMA DE ACTUALIZACIONES
Cómo Funciona
-
Detección automática:
- El navegador verifica si hay una nueva versión del
sw.js - Si hay cambios, descarga la nueva versión
- La nueva versión se instala en segundo plano
- El navegador verifica si hay una nueva versión del
-
Notificación al usuario:
- Cuando hay una nueva versión instalada, se muestra un banner
- El usuario puede elegir actualizar ahora o más tarde
- Al actualizar, se recarga la página automáticamente
-
Actualización del cache:
- Al cambiar
CACHE_VERSIONensw.js, se crea un nuevo cache - El cache antiguo se elimina automáticamente
- Los nuevos recursos se descargan y cachean
- Al cambiar
🧪 CÓMO PROBAR
Test 1: Verificar Registro del SW
- Abrir la app en el navegador
- DevTools > Application > Service Workers
- Verificar:
- ✅ SW registrado y activo
- ✅ Estado: "activated and is running"
- ✅ Scope:
/o/guia-tes-digital/
Test 2: Verificar Cache
- DevTools > Application > Cache Storage
- Verificar:
- ✅ Cache
emerges-tes-v1.0.1existe - ✅ Contiene
index.html,manifest.json - ✅ Contiene assets (JS, CSS)
- ✅ Cache
Test 3: Test Offline
- Cargar la app (para cachear recursos)
- DevTools > Network > Throttling > "Offline"
- Recargar la página
- Verificar:
- ✅ La app carga correctamente
- ✅ Las imágenes cargan desde cache
- ✅ La navegación funciona
Test 4: Test de Actualización
- Cambiar
CACHE_VERSIONensw.js(ej:v1.0.1→v1.0.2) - Hacer build:
npm run build - Servir:
npm run previewo subir a servidor - Abrir la app en navegador
- Verificar:
- ✅ El SW detecta la nueva versión
- ✅ Se muestra banner de actualización
- ✅ Al actualizar, se recarga y usa nuevo cache
🔧 MEJORAS IMPLEMENTADAS
1. Hook useServiceWorker
- ✅ Detecta estado del SW
- ✅ Detecta actualizaciones disponibles
- ✅ Detecta estado offline/online
- ✅ Funciones para actualizar y recargar
2. Componente UpdateNotification
- ✅ Muestra banner cuando hay actualización
- ✅ Botón para actualizar ahora
- ✅ Toast notification opcional
3. Service Worker Mejorado
- ✅
updateViaCache: 'none'- Siempre verifica actualizaciones - ✅ Verificación al recuperar foco
- ✅ Versión de cache para control de actualizaciones
📋 CHECKLIST DE VERIFICACIÓN
Instalación PWA
- La app se puede instalar en Android (Add to Home Screen)
- La app se puede instalar en iOS (Add to Home Screen)
- El icono aparece correctamente
- El nombre aparece correctamente
Funcionamiento Offline
- La app carga sin internet
- Las imágenes cargan desde cache
- Los archivos Markdown cargan desde cache
- La navegación funciona offline
Actualizaciones
- El SW detecta nuevas versiones
- Se muestra notificación de actualización
- La actualización funciona correctamente
- El cache se actualiza correctamente
🚨 PROBLEMAS CONOCIDOS Y SOLUCIONES
Problema 1: SW no se registra
Síntomas: No aparece en DevTools > Application > Service Workers
Soluciones:
- Verificar que
sw.jsestá enpublic/y se copia adist/ - Verificar que la ruta de registro es correcta
- Verificar que no hay errores en la consola
- Limpiar cache del navegador y Service Workers antiguos
Problema 2: Actualizaciones no se detectan
Síntomas: Cambios en el código no se reflejan
Soluciones:
- Incrementar
CACHE_VERSIONensw.js - Hacer nuevo build:
npm run build - Limpiar cache del navegador
- Forzar actualización: DevTools > Application > Service Workers > "Update"
Problema 3: Cache no se actualiza
Síntomas: Versión antigua sigue apareciendo
Soluciones:
- Cambiar
CACHE_VERSIONensw.js - Verificar que el SW se actualiza (nuevo
sw.jsen servidor) - Limpiar cache manualmente: DevTools > Application > Clear storage
🎯 PRÓXIMAS MEJORAS (Opcional)
- Actualización automática en segundo plano (sin notificar)
- Indicador visual de estado offline en la UI
- Sincronización de datos cuando vuelve la conexión
- Notificaciones push (si se implementa backend)
Última actualización: 2024-12-19