Primeros Pasos
Instalación
Section titled “Instalación”npm install @capgo/capacitor-updaternpx cap syncyarn add @capgo/capacitor-updaternpx cap syncpnpm add @capgo/capacitor-updaternpx cap syncbun add @capgo/capacitor-updaternpx cap syncInicio Rápido
Section titled “Inicio Rápido”Para la mayoría de usuarios, recomendamos seguir la guía principal de Quickstart que cubre tanto la instalación del Plugin como la integración con la nube de Capgo.
Esta guía de primeros pasos se enfoca en los detalles técnicos del Plugin para usuarios avanzados que quieren entender los mecanismos subyacentes o implementar actualizaciones auto-hospedadas.
Descripción General
Section titled “Descripción General”El Plugin Capacitor Updater habilita actualizaciones over-the-air (OTA) para tus aplicaciones Capacitor. Esto te permite enviar actualizaciones a tu aplicación sin pasar por las revisiones de tiendas de aplicaciones.
Cómo Funciona
Section titled “Cómo Funciona”- Descarga de Paquete: El Plugin descarga Paquetes de actualización (archivos ZIP que contienen tus assets web)
- Extracción: Los Paquetes se extraen al almacenamiento del dispositivo
- Hot Reload: La aplicación cambia al nuevo Paquete sin requerir un reinicio
- Fallback: Si una actualización falla, la aplicación revierte a la versión de trabajo anterior
Modos de Uso
Section titled “Modos de Uso”1. Modo de Actualización Automática (Recomendado)
Section titled “1. Modo de Actualización Automática (Recomendado)”La forma más simple de usar el Plugin con gestión automática de actualizaciones:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// El plugin maneja todo automáticamente// Configura en capacitor.config.tsAgrega a tu capacitor.config.ts:
{ plugins: { CapacitorUpdater: { autoUpdate: true, updateUrl: 'https://tu-servidor-actualizaciones.com/api/updates' } }}2. Modo Manual
Section titled “2. Modo Manual”Para control avanzado sobre el proceso de actualización:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Descargar una actualizaciónconst bundle = await CapacitorUpdater.download({ url: 'https://tu-servidor.com/updates/v1.0.1.zip', version: '1.0.1'});
// Establecer el bundle (se usará en el próximo inicio de la aplicación)await CapacitorUpdater.set({ id: bundle.id});
// O recargar inmediatamenteawait CapacitorUpdater.reload();Configuración de Plataforma
Section titled “Configuración de Plataforma”No se requiere configuración adicional. El Plugin funciona out of El box.
Android
Section titled “Android”No se requiere configuración adicional. El Plugin funciona out of El box.
Uso Básico de API
Section titled “Uso Básico de API”Descargar una Actualización
Section titled “Descargar una Actualización”import { CapacitorUpdater } from '@capgo/capacitor-updater';
const bundle = await CapacitorUpdater.download({ url: 'https://example.com/update.zip', version: '1.0.1'});
console.log('Bundle descargado:', bundle.id);Establecer Paquete Activo
Section titled “Establecer Paquete Activo”// Establecer bundle para usar en el próximo inicio de la aplicaciónawait CapacitorUpdater.set({ id: bundle.id});Recargar con Nuevo Paquete
Section titled “Recargar con Nuevo Paquete”// Recargar aplicación inmediatamente con nuevo bundleawait CapacitorUpdater.reload();Listar Paquetes
Section titled “Listar Paquetes”const { bundles } = await CapacitorUpdater.list();console.log('Bundles disponibles:', bundles);Eliminar un Paquete
Section titled “Eliminar un Paquete”await CapacitorUpdater.delete({ id: 'bundle-id'});Obtener Paquete Actual
Section titled “Obtener Paquete Actual”const { bundle } = await CapacitorUpdater.current();console.log('Bundle actual:', bundle.version);Listeners de Eventos
Section titled “Listeners de Eventos”Escucha eventos de actualización:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Escuchar progreso de descargaCapacitorUpdater.addListener('download', (info) => { console.log('Progreso de descarga:', info.percent);});
// Escuchar finalización de descargaCapacitorUpdater.addListener('downloadComplete', (bundle) => { console.log('Descarga completa:', bundle.version);});
// Escuchar fallos de actualizaciónCapacitorUpdater.addListener('updateFailed', (error) => { console.error('Actualización fallida:', error);});
// Escuchar actualizaciones exitosasCapacitorUpdater.addListener('updateAvailable', (info) => { console.log('Actualización disponible:', info.version);});Opciones de Configuración
Section titled “Opciones de Configuración”Configura el Plugin en tu capacitor.config.ts:
{ plugins: { CapacitorUpdater: { // Configuraciones de actualización automática autoUpdate: true, updateUrl: 'https://api.example.com/updates',
// Comportamiento de actualización resetWhenUpdate: true, directUpdate: false,
// Configuraciones de versión version: '1.0.0',
// Seguridad allowModifyUrl: false,
// Recopilación de estadísticas statsUrl: 'https://api.example.com/stats',
// Canal (para nube de Capgo) defaultChannel: 'production' } }}Patrones de Integración
Section titled “Patrones de Integración”Con Nube de Capgo
Section titled “Con Nube de Capgo”La forma más fácil de comenzar:
// Instalar el CLI de Capgonpm install -g @capgo/cli
// Iniciar sesión en Capgonpx @capgo/cli login
// Subir tu primer bundlenpx @capgo/cli bundle upload
// El plugin se actualiza automáticamente desde la nube de CapgoConsulta la guía principal de Quickstart para detalles.
Actualizaciones Auto-hospedadas
Section titled “Actualizaciones Auto-hospedadas”Hospeda tu propio servidor de actualizaciones:
// Configura tu endpoint de actualización{ plugins: { CapacitorUpdater: { autoUpdate: true, updateUrl: 'https://tu-servidor.com/api/check-update' } }}Tu servidor debe retornar:
{ "version": "1.0.1", "url": "https://tu-servidor.com/updates/1.0.1.zip"}Consulta Modo Auto-hospedado para detalles completos.
Flujo de Actualización Manual
Section titled “Flujo de Actualización Manual”Control completo sobre las actualizaciones:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
async function checkAndUpdate() { // Verificar actualizaciones desde tu servidor const response = await fetch('https://api.example.com/check-update'); const { version, url } = await response.json();
// Descargar la actualización const bundle = await CapacitorUpdater.download({ url, version });
// Notificar que el bundle está listo await CapacitorUpdater.notifyAppReady();
// Establecer como próxima versión await CapacitorUpdater.set({ id: bundle.id });
// Recargar cuando esté listo await CapacitorUpdater.reload();}Mejores Prácticas
Section titled “Mejores Prácticas”- Siempre llama a
notifyAppReady()cuando tu aplicación se carga exitosamente - Prueba las actualizaciones a fondo antes de enviarlas a producción
- Implementa manejo apropiado de errores para fallos de red
- Usa números de versión de manera consistente
- Mantén los tamaños de Paquete pequeños para descargas más rápidas
- Monitorea las tasas de éxito de actualizaciones
Próximos Pasos
Section titled “Próximos Pasos”- Referencia de API del Plugin - Documentación completa de API
- Configuración del Plugin - Todas las opciones de configuración
- Eventos - Eventos de actualización disponibles
- Modo Auto-hospedado - Ejecuta tu propio servidor de actualizaciones
- Desarrollo Local - Prueba actualizaciones localmente
- Depuración - Guía de solución de problemas
Soporte
Section titled “Soporte”- Problemas Conocidos - Problemas comunes y soluciones
- Discusiones de GitHub - Soporte comunitario
- Discord - Chat en tiempo real