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 plugin.
Cuando liberes una actualización a tu aplicación Capgo, probablemente querrás 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 rápidamente y minimizar la interrupción para 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 la aplicación:
-
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 complete la descarga, Capgo espera a que el usuario ponga la aplicación en segundo plano.
-
Cuando el usuario vuelva a traer la aplicación al primer plano, estarán ejecutando la versión actualizada.
Este flujo garantiza que los usuarios siempre estén ejecutando la versión más reciente de su aplicación, 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 cierre 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 aplicación siempre es fresca.
-
Puede entregar actualizaciones con frecuencia sin preocuparse por interrumpir a los usuarios activos.
El principal inconveniente es que si un usuario envía a segundo plano y vuelve rápidamente a su aplicación, pueden perder cualquier estado no guardado desde que se aplicó la actualización entre esas acciones.
To 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 Cuando Se Aplican Las Actualizaciones
Título de la sección “Personalizar Cuando Se Aplican Las Actualizaciones”En algunos casos, puede desear tener más control sobre exactamente cuándo se aplica una actualización. Por ejemplo, puede desear asegurarse 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 le 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', }, ],});Este ejemplo 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: Espera hasta después de una fecha/hora específica para aplicar la actualización.background: Espera un mínimo de duración después de que la aplicación se ponga en segundo plano para aplicar la actualización.nativeVersion: Espera a que se instale un binario nativo con una versión mínima antes de aplicar la actualización.kill: Espera hasta el próximo evento de eliminación de la aplicación para aplicar la actualización.
Puedes mezclar y combinar estas condiciones para controlar con precisión cuándo se instala una actualización.
Aplicar Actualizaciones Inmediatamente
Título de la sección “Aplicar Actualizaciones Inmediatamente”Para actualizaciones críticas o aplicaciones con un estado muy simple, es posible que desees aplicar una actualización tan pronto como se descargue, sin esperar a un evento de segundo plano o eliminación. Capgo admite esto a través de autoUpdate política en tu Capacitor configuración.
autoUpdate está configurado en tu capacitor.config.ts archivo, no en JavaScript code. Soporta estos valores:
falseo'off': Deshabilitar las comprobaciones de actualizaciones automáticastrueo'atBackground'(por defecto): Comprueba y descarga automáticamente en cada comprobación de primer plano, luego aplica la actualización la próxima vez que la aplicación se mueva al segundo plano'atInstall': Aplicar de inmediato solo después de una instalación fresca o actualización de tienda de aplicaciones nativa; en caso contrario, utilice"atBackground"comportamiento'onLaunch': Aplicar inmediatamente solo cuando la aplicación se trae a primer plano desde un estado de muerte (inicio frío). Después de ese primer chequeo, caer en la opción de"atBackground"comportamiento'always': Comprobar en cada transición de primer plano y aplicar inmediatamente siempre que esté disponible una actualización'onlyDownload': Comprobar y descargar automáticamente, emitirupdateAvailable, y nunca establecer el siguiente paquete o aplicar una actualización automáticamente
Probar una compilación nativa sin actualizaciones en vivo
Sección titulada “Probar una compilación nativa sin actualizaciones en vivo”Ver Probar 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 verificaciones 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.
Tenga en cuenta que porque autoUpdate es una configuración nativa, los modos de aplicación instantánea requieren algún manejo adicional en su 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 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 Bienvenida”Para hacer que los modos de aplicación instantánea sean más fáciles de usar, Capgo proporciona un autoSplashscreen la opción que automáticamente gestiona el ocultamiento de la pantalla de bienvenida para 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 complemento oculta automáticamente la pantalla de bienvenida cuando se aplica una actualización
- El complemento oculta automáticamente la pantalla de bienvenida cuando no se necesita una actualización
- No necesita escuchar manualmente los
appReadyeventos o llamar aSplashScreen.hide()
Gestión manual de la pantalla de bienvenida
Sección titulada “Gestión manual de la pantalla de bienvenida”Si prefiere el control manual o necesita lógica personalizada, puede deshabilitar autoSplashscreen y gestionarlo usted mismo:
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();La 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 la aplicación, ya que garantiza que el usuario verá la versión más reciente.
Además de manejar el appReady evento, recomendamos establecer la keepUrlPathAfterReload configuración opción a 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, ayudando a mantener la ubicación del usuario en la aplicación y reduciendo 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.
Usar un modo de aplicación instantáneo puede ser útil para entregar parches de seguridad o correcciones de errores críticos, pero conlleva algunos tradeoff:
- El usuario puede ver un destello breve o un estado de carga mientras se aplica la actualización si no manejas correctamente la pantalla de bienvenida (ya sea con
autoSplashscreeno manualappReadymanejo de eventos). - 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 podría desorientarlo. - Tendrá que manejar con cuidado la guardado y restauración del estado para asegurar una transición suave.
Si habilita la aplicación instantánea, le recomendamos:
- Usar
autoSplashscreen: truepara la configuración más simple, o manejar manualmente elappReadyevento si necesita lógica personalizada. - Configurar
keepUrlPathAfterReloadatruepreservar 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.
- Realizar pruebas exhaustivas del comportamiento de actualización de la aplicación para asegurarse de que no haya transiciones bruscas, pérdida de estado o cambios de ubicación desorientadores.
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 proporciona la flexibilidad para personalizar cuándo y cómo se aplican las actualizaciones.
Sigue adelante desde Comportamiento de actualización
Sección titulada “Sigue adelante desde Comportamiento de actualización”Si está utilizando Comportamiento de actualización para planificar la entrega de actualizaciones en vivo, conecte con Capgo Actualizaciones en vivo para el flujo de trabajo del producto en Capgo Actualizaciones en vivo, Resumen para los detalles de implementación en Vista general Características para los detalles de implementación en Características Tipos de actualizaciones para los detalles de implementación en Tipos de actualizaciones, y Empezar para los detalles de implementación en Empezar.