Comportamiento de actualización
Copie un prompt de configuración con los pasos de instalación y la guía de markdown completa para este complemento.
Cuando liberes una actualización a tu aplicación Capgo, probablemente quieras que tus usuarios la reciban lo antes posible. Pero también no quieres interrumpir su experiencia obligándolos a esperar a que se descargue o reinicien la aplicación en medio de una sesión.
El comportamiento de actualización de Capgo está diseñado para encontrar un equilibrio entre entregar actualizaciones de manera rápida y minimizar la interrupción de tus usuarios.
Flujo de Actualización Predeterminado
Sección titulada “Flujo de Actualización Predeterminado”Por defecto, aquí es cómo Capgo maneja las actualizaciones de aplicaciones:
-
Cuando la aplicación se mueve al primer plano, el plugin Capgo verifica si hay una nueva actualización disponible. Mientras la aplicación permanece abierta, también verifica de nuevo en un temporizador repetido controlado por
periodCheckDelay(10 minutos por defecto). -
Si se encuentra una actualización, se descarga en segundo plano mientras el usuario continúa utilizando la versión actual de la aplicación.
-
Una vez que se completa la descarga, Capgo espera a que el usuario ponga el app en segundo plano.
-
Cuando el usuario siguiente trae el app a la pantalla principal, estarán ejecutando la versión actualizada.
Este flujo garantiza que los usuarios siempre estén ejecutando la última versión de su app, sin que nunca sean interrumpidos por solicitudes de actualización o obligados a esperar por descargas.
¿Por qué este enfoque?
Sección titulada “¿Por qué este enfoque?”Aplicar actualizaciones en un evento de fondo o de eliminación tiene algunos beneficios clave para la experiencia del usuario:
-
Los usuarios no son interrumpidos por solicitudes de actualización o obligados a esperar por descargas en medio de una sesión.
-
Las actualizaciones se aplican de manera suave entre sesiones, por lo que la experiencia de iniciar la app siempre es fresca.
-
Podrías entregar actualizaciones con frecuencia sin preocuparte por interrumpir a los usuarios activos.
El principal inconveniente es que si un usuario envía a segundo plano y vuelve rápidamente a tu aplicación, pueden perder cualquier estado no guardado desde que se aplicó la actualización entre esas acciones.
Para mitigar esto, recomendamos:
-
Guardar el estado con frecuencia y restaurarlo de manera suave cuando la aplicación se reanude.
-
Evitar actualizaciones muy frecuentes que modifican grandes partes del estado de la aplicación.
-
Considerar personalizar el comportamiento de la actualización para flujos sensibles (consulte a continuación).
Personalizar cuándo se aplican las actualizaciones
Sección titulada “Personalizar cuándo se aplican las actualizaciones”En algunos casos, podrías querer tener más control sobre exactamente cuándo se aplica una actualización. Por ejemplo, podrías querer asegurarte de que un usuario complete un flujo en curso antes de actualizar, o coordinar una actualización de la aplicación con un cambio en el lado del servidor.
Capgo proporciona una setDelay función que te permite especificar condiciones que deben cumplirse antes de que se instale una actualización:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({ delayConditions: [ { kind: 'date', value: '2023-06-01T00:00:00.000Z', }, { kind: 'background', value: '60000', }, ],});Ejemplo que retrasaría la instalación de una actualización hasta después del 1 de junio de 2023 Y la aplicación ha estado en segundo plano durante al menos 60 segundos.
Las condiciones de retraso disponibles son:
date: Esperar hasta después de una fecha/hora específica para aplicar la actualización.background: Esperar un mínimo de duración después de que la aplicación esté en segundo plano para aplicar la actualización.nativeVersion: Esperar a que se instale un binario nativo con una versión mínima antes de aplicar la actualización.kill: Esperar hasta el próximo evento de eliminación de la aplicación para aplicar la actualización.
Puede combinar y mezclar estas condiciones para controlar con precisión cuándo se instala una actualización.
Aplicar Actualizaciones Inmediatamente
Sección titulada “Aplicar Actualizaciones Inmediatamente”Para actualizaciones críticas o aplicaciones con un estado muy simple, es posible que desee aplicar una actualización tan pronto como esté descargada, sin esperar a un evento de fondo o de eliminación. Capgo admite esto a través de la autoUpdate política en su configuración de Capacitor.
autoUpdate establecido en tu capacitor.config.ts archivo, no en JavaScript code. Soporta estos valores:
falseo'off'¿Otra cosa? | ¿Otra cosa? | ¿Otra cosa? | ¿Otra cosa? | ¿Otra cosa? | ¿Otra cosa?true: Desactivar las comprobaciones de actualizaciones automáticas'atBackground'o'atInstall': Aplicar inmediatamente solo después de una instalación fresca o actualización de la tienda de aplicaciones nativas; en caso contrario, utilice"atBackground"comportamiento'onLaunch': Aplicar inmediatamente solo cuando la aplicación se trae al primer plano desde un estado asesinado (inicio frío). Después de ese primer chequeo, caiga en el"atBackground"comportamiento'always': Verificar en cada transición al primer plano y aplicar inmediatamente siempre que esté disponible una actualización'onlyDownload': Verificar y descargar automáticamente, emitirupdateAvailable, y nunca establecer el siguiente paquete o aplicar una actualización automáticamente
Prueba una compilación nativa sin actualizaciones en vivo
Título de la sección “Prueba una compilación nativa sin actualizaciones en vivo”Consulte Prueba compilaciones nativas sin actualizaciones en vivo para las salvaguardas de configuración de versión nativa, política de canal y CI.
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' for updates only on app install/update autoSplashscreen: true, keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, // Required when using instant apply with autoSplashscreen }, },};
export default config;Con autoUpdate: 'always', Capgo verifica en cada transición al primer plano y aplica una actualización inmediata tan pronto como se complete la descarga durante esa verificación, incluso si el usuario está utilizando activamente la aplicación. Las verificaciones periódicas controladas por periodCheckDelay pueden desencadenar el mismo comportamiento de aplicación inmediata mientras la aplicación permanece abierta.
Ten en cuenta que porque autoUpdate es una configuración nativa, los modos de aplicación instantánea requieren algún manejo adicional en tu JavaScript code.
Descargando Automáticamente Sin Aplicar
Sección titulada “Descargando Automáticamente Sin Aplicar”Si deseas que Capgo compruebe y descargue actualizaciones automáticamente pero nunca las aplique automáticamente, utilice autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};En este modo, el plugin emite updateAvailable después de que se descargue un paquete. Tu aplicación puede decidir cuándo llamar a CapacitorUpdater.set() o mostrar su propia ventana de actualización.
Gestión Automática de Pantalla de Bienvenida
Sección titulada “Gestión Automática de Pantalla de Presentación”Para hacer que los modos de aplicación instantánea sean más fáciles de usar, Capgo proporciona una autoSplashscreen opción que gestiona automáticamente el ocultamiento de la pantalla de presentación por usted (disponible desde la versión 7.6.0):
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};Cuando autoSplashscreen está habilitado:
- El plugin oculta automáticamente la pantalla de presentación cuando se aplica una actualización
- El plugin oculta automáticamente la pantalla de presentación cuando no se necesita ninguna actualización
- No necesita escuchar manualmente los
appReadyeventos o llamar aSplashScreen.hide()
Gestión Manual de Pantalla de Presentación
Sección titulada “Gestión Manual de Pantalla de Presentación”If you prefer manual control or need custom logic, you can disable autoSplashscreen y manejarlo tú mismo:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();El appReady El evento se dispara una vez que la aplicación ha terminado de inicializarse y aplicar cualquier actualización pendiente. Este es el punto en el que es seguro mostrar la interfaz de usuario de tu aplicación, ya que garantiza que el usuario verá la última versión.
Además de manejar el appReady evento, recomendamos establecer la keepUrlPathAfterReload opción de configuración en true cuando se utiliza un modo de aplicación instantánea. Esto preserva la ruta de la URL actual cuando la aplicación se recarga debido a una actualización, lo que ayuda a mantener la ubicación del usuario en la aplicación y reduce la confusión.
Si no manejas el appReady evento y estableces keepUrlPathAfterReload cuando se utiliza un modo de aplicación instantánea, el usuario puede ver brevemente una versión obsoleta de la aplicación, ser devuelto a la ruta inicial o ver un destello mientras se aplica la actualización.
Usando un modo de aplicación instantánea puede ser útil para entregar correcciones de errores críticos o parches de seguridad, pero conlleva algunos inconvenientes:
- El usuario puede ver un breve destello o estado de carga mientras se aplica la actualización si no maneja correctamente la pantalla de bienvenida (ya sea con
autoSplashscreeno manejo manualappReadydel evento). - Si la actualización modifica el estado de la aplicación o la interfaz de usuario, el usuario puede ver un cambio disruptivo en medio de una sesión.
- La ubicación del usuario en la aplicación puede estar perdida si
keepUrlPathAfterReloadno está configurado, lo que puede desorientarlo. - Deberá manejar con cuidado la guardado y restauración del estado para asegurar una transición suave.
Si habilita la aplicación instantánea, recomendamos:
- Usar
autoSplashscreen: truepara el conjunto de configuración más simple, o manejar manualmente elappReadyevento si necesita lógica personalizada. - Configuración
keepUrlPathAfterReloadatruecontexto - para mantener la ubicación del usuario en la aplicación.
- Guardar y restaurar el estado de la aplicación según sea necesario para evitar perder el progreso del usuario.
In most cases, the default update behavior provides the best balance of delivering updates quickly and minimizing disruption. But for apps with specific needs, Capgo provides the flexibility to customize when and how updates are applied.
En la mayoría de los casos, el comportamiento de actualización predeterminado proporciona la mejor relación entre entregar actualizaciones rápidamente y minimizar la interrupción. Pero para aplicaciones con necesidades específicas, __CAPGO_KEEP_0__ ofrece la flexibilidad para personalizar cuándo y cómo se aplican las actualizaciones.
Sigue adelante desde Comportamiento de ActualizaciónSección titulada ‘Sigue adelante desde Comportamiento de Actualización’ Si estás utilizando Comportamiento de Actualización para planificar la entrega de actualizaciones en vivo, conecta con Capgo Actualizaciones en Vivo para el flujo de trabajo del producto en Capgo Actualizaciones en vivo Resumen para el detalle de implementación en Resumen Características para el detalle de implementación en Características Tipos de actualizaciones para el detalle de implementación en Tipos de actualizaciones, y Iniciar sesión Anterior