Comportement de mise à jour
Copiez une commande de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Lorsque vous publiez une mise à jour pour votre application Capgo, vous souhaitez probablement que vos utilisateurs reçoivent cette mise à jour aussi rapidement que possible. Mais vous ne voulez pas non plus perturber leur expérience en leur forçant de attendre un téléchargement ou de redémarrer l'application au milieu d'une session.
Capgo's comportement de mise à jour est conçu pour trouver un équilibre entre la livraison de mises à jour rapides et la minimisation de la perturbation pour vos utilisateurs.
Flux de mise à jour par défaut
Section intitulée « Flux de mise à jour par défaut »Par défaut, voici comment Capgo gère les mises à jour de l'application :
-
Lorsque l'application passe en avant-plan, le plugin Capgo vérifie si une nouvelle mise à jour est disponible. Alors que l'application reste ouverte, il vérifie à nouveau à intervalles réguliers contrôlés par
periodCheckDelay(défaut 10 minutes). -
Si une mise à jour est trouvée, elle est téléchargée en arrière-plan tandis que l'utilisateur continue à utiliser la version actuelle de l'application.
-
Lorsque le téléchargement est terminé, Capgo attend que l'utilisateur mette l'application en arrière-plan.
-
Lorsque l'utilisateur ramène l'application en avant-plan, ils auront la version mise à jour.
Cet flux garantit que les utilisateurs ont toujours la dernière version de votre application, sans jamais être interrompus par des invitations à mettre à jour ou obligés d'attendre des téléchargements.
Pourquoi Cette Approche?
Sous-section intitulée “Pourquoi Cette Approche?”L'application des mises à jour en arrière-plan ou lors d'un événement de fermeture présente quelques avantages clés pour l'expérience utilisateur :
-
Les utilisateurs ne sont pas interrompus par des invites de mise à jour ou contraints de patienter pendant les téléchargements au milieu d'une session.
-
Les mises à jour sont appliquées de manière fluide entre les sessions, de sorte que l'expérience de lancement de l'application est toujours fraîche.
-
Vous pouvez livrer des mises à jour fréquentes sans vous soucier de perturber les utilisateurs actifs.
Le principal inconvénient est que si un utilisateur met en arrière-plan et reprend rapidement votre application, il peut perdre tout l'état non enregistré depuis que la mise à jour a été appliquée entre ces actions.
Pour atténuer cela, nous recommandons :
-
Enregistrer l'état fréquemment et le restaurer avec grâce lorsque l'application reprend.
-
Éviter les mises à jour très fréquentes qui modifient de grandes parties de l'état de l'application.
-
Considérer la personnalisation du comportement de mise à jour pour les flux sensibles (voir ci-dessous).
Personnalisation de l'application des mises à jour
Section intitulée « Personnalisation de l'application des mises à jour »Vous pouvez avoir besoin de plus de contrôle sur l'exact moment où une mise à jour est appliquée. Par exemple, vous pourriez vouloir vous assurer que l'utilisateur a terminé une tâche en cours avant de mettre à jour, ou coordonner une mise à jour d'une application avec une modification côté serveur.
Capgo fournit un setDelay fonction qui vous permet de spécifier des conditions qui doivent être remplies avant que la mise à jour soit installée :
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({ delayConditions: [ { kind: 'date', value: '2023-06-01T00:00:00.000Z', }, { kind: 'background', value: '60000', }, ],});Cet exemple retarderait l'installation d'une mise à jour jusqu'après le 1er juin 2023 ET l'application a été mis en arrière-plan pendant au moins 60 secondes.
Les conditions de retard disponibles sont :
date: Attendre jusqu'à une date et heure spécifique pour appliquer la mise à jour.background: Attendre une durée minimale après que l'application est mise en arrière-plan pour appliquer la mise à jour.nativeVersion: Attendre que le code natif avec une version minimale soit installé avant d'appliquer la mise à jour.kill: Attendre jusqu'à l'événement de suppression de l'application suivant pour appliquer la mise à jour.
Vous pouvez combiner ces conditions pour contrôler précisément quand une mise à jour est installée.
Section intitulée “Appliquer les Mises à Jour Immédiatement”
Pour les mises à jour critiques ou les applications avec un état très simple, vous pouvez vouloir appliquer une mise à jour dès qu'elle est téléchargée, sans attendre un événement de fond d'écran ou de mort. __CAPGO_KEEP_0__ prend en charge cela via la « politique » dans votre fichier de configuration __CAPGO_KEEP_0__.For critical updates or apps with very simple state, you may want to apply an update as soon as it’s downloaded, without waiting for a background or kill event. Capgo supports this via the autoUpdate policy in your Capacitor config.
autoUpdate est défini dans votre fichier, pas dans le JavaScript __CAPGO_KEEP_0__. capacitor.config.ts file, not in JavaScript code. It supports these values:
falseDésactiver les vérifications automatiques de mise à jour'off'outruePar défaut : Vérifier et télécharger automatiquement à chaque vérification en avant-plan, puis appliquer la mise à jour la prochaine fois que l'application passe en arrière-plan'atBackground'Appliquer immédiatement uniquement après une installation fraîche ou une mise à jour de l'application native ; sinon utiliser'atInstall'le comportement"atBackground"Appliquer immédiatement uniquement lorsque l'application est ramenée en avant-plan à partir d'un état arrêté (démarrage froid). Après la première vérification, reculer vers'onLaunch'le comportement"atBackground"Vérifier à chaque transition en avant-plan et appliquer immédiatement dès que la mise à jour est disponible'always'Vérifier et télécharger automatiquement, émettre'onlyDownload'is set in your file, not in JavaScript __CAPGO_KEEP_0__. It supports these values:updateAvailableet ne jamais configurer automatiquement le prochain bundle ou appliquer une mise à jour
Testez une mise en production native sans mises à jour en temps réel
Titre de la section « Testez une mise en production native sans mises à jour en temps réel »Voir Testez les mises en production natives sans mises à jour en temps réel pour les garanties de configuration de version native, politique de canal et 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;With __CAPGO_KEEP_0__ vérifie toutes les transitions de premier plan et applique immédiatement une mise à jour dès que le téléchargement est terminé pendant cette vérification, même si l'utilisateur utilise l'application en cours de chargement. autoUpdate: 'always', Capgo effectue des vérifications périodiques contrôlées par periodCheckDelay Notez que puisque
est une configuration native, les modes d'application instantanée nécessitent quelques manipulations supplémentaires dans votre JavaScript __CAPGO_KEEP_0__. autoUpdate is a native configuration, instant apply modes require some additional handling in your JavaScript code.
Section intitulée “Téléchargement automatique sans application”
Section titled “Downloading Automatically Without Applying”Si vous souhaitez que Capgo vérifie et télécharge les mises à jour automatiquement mais ne les applique jamais automatiquement, utilisez autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};Dans ce mode, le plugin émet updateAvailable après que le bundle est téléchargé. Votre application peut alors décider quand appeler CapacitorUpdater.set() ou afficher sa propre invitation à mettre à jour.
Gestion automatique de l'écran de démarrage
Section intitulée “Gestion automatique de l'écran de démarrage”Pour rendre les modes d'application instantanée plus faciles à utiliser, Capgo fournit une autoSplashscreen option qui gère automatiquement la suppression de l'écran de démarrage pour vous (disponible depuis la version 7.6.0):
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};Lorsque autoSplashscreen est activé:
- Le plugin cache automatiquement l'écran de chargement lorsqu'une mise à jour est appliquée
- Le plugin cache automatiquement l'écran de chargement lorsqu'aucune mise à jour n'est nécessaire
- Vous n'avez pas besoin d'écouter manuellement les
appReadyou d'appelerSplashScreen.hide()
Gestion manuelle de l'écran de chargement
Section intitulée « Gestion manuelle de l'écran de chargement »Si vous préférez un contrôle manuel ou avez besoin de logique personnalisée, vous pouvez désactiver autoSplashscreen et le gérer vous-même :
import { CapacitorUpdater } from '@capgo/capacitor-updater';import { SplashScreen } from '@capacitor/splash-screen';
CapacitorUpdater.addListener('appReady', () => { // Hide splash screen SplashScreen.hide();});
CapacitorUpdater.notifyAppReady();L' appReady événement se déclenche une fois l'application terminée de s'initialiser et d'appliquer toute mise à jour en attente. C'est le point auquel il est sûr de montrer l'interface utilisateur de votre application, car il s'assure que l'utilisateur verra la dernière version.
En plus de gérer le appReady lors d'un événement, nous recommandons de définir l'option de configuration à keepUrlPathAfterReload lorsque vous utilisez un mode d'application instantanée. Cela préserve l'itinéraire actuel de la page lorsque l'application est rechargée en raison d'une mise à jour, ce qui aide à maintenir la position de l'utilisateur dans l'application et à réduire la désorientation. true Si vous n'abordez pas l'événement et que vous ne définissez pas
lorsque vous utilisez un mode d'application instantanée, l'utilisateur peut brièvement voir une version obsolète de l'application, être redirigé vers la route initiale ou voir un éclatement lorsque la mise à jour est appliquée. appReady Utiliser un mode d'application instantanée peut être utile pour délivrer des correctifs de bogues critiques ou des mises à jour de sécurité, mais cela implique quelques compromis : keepUrlPathAfterReload L'utilisateur peut voir un éclatement ou un état de chargement temporaire lorsque la mise à jour est appliquée si vous n'abordez pas correctement l'écran de chargement (soit avec
ou un traitement manuel de l'événement).
- Si la mise à jour modifie l'état de l'application ou l'interface utilisateur, l'utilisateur peut voir une modification perturbatrice au milieu d'une session.
autoSplashscreenLa position de l'utilisateur dans l'application peut être perdue siappReady__CAPGO_KEEP_0__ - __CAPGO_KEEP_1__
- __CAPGO_KEEP_2__
keepUrlPathAfterReloadn'est pas défini, ce qui pourrait les dérouter. - Vous devrez manipuler avec soin la sauvegarde et la restauration de l'état pour garantir une transition fluide.
Si vous activez l'application instantanée, nous vous recommandons :
- Utiliser
autoSplashscreen: truepour la configuration la plus simple, ou gérer manuellement l'appReadySi vous avez besoin de logique personnalisée. - Définir
keepUrlPathAfterReloadàtruepour conserver la position de l'utilisateur dans l'application. - Sauvegarder et restaurer l'état de l'application selon les besoins pour éviter de perdre le progrès de l'utilisateur.
- Tester soigneusement le comportement de mise à jour de votre application pour vous assurer qu'il n'y a pas de transitions brusques, d'état perdu ou de changements de position déorientants.
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.
Continuez à partir de la mise à jour de la mise à jour
Section intitulée “Continuez à partir de la mise à jour de la mise à jour”Si vous utilisez Mise à jour de la mise à jour pour planifier la livraison en direct de la mise à jour, connectez-la à Capgo Mises à jour en direct pour le flux de travail du produit dans Capgo Mises à jour en direct, Vue d'ensemble pour les détails d'implémentation dans Vue d'ensemble, Caractéristiques pour les détails d'implémentation dans Caractéristiques Types de mise à jour pour les détails d'implémentation dans les types de mise à jour, et Démarrage pour les détails d'implémentation dans le Démarrage.