Comportement de Mise à Jour
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plugin.
Lorsque vous mettez à jour votre application Capgo, vous souhaitez probablement que vos utilisateurs reçoivent cette mise à jour le plus rapidement possible. Mais vous ne voulez pas non plus perturber leur expérience en leur forçant de attendre une mise à jour ou de redémarrer l'application au milieu d'une session.
Le comportement de mise à jour de Capgo est conçu pour trouver un équilibre entre la livraison des mises à jour rapidement 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 des applications :
-
Lors du lancement de l'application, le plugin Capgo vérifie si une nouvelle mise à jour est disponible.
-
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.
-
Une fois que le téléchargement est terminé, Capgo attend que l'utilisateur fasse en arrière-plan l'application ou la supprime complètement.
-
Lorsque l'utilisateur lance à nouveau l'application, ils seront en train de lancer la version mise à jour.
Ce flux garantit que les utilisateurs sont toujours en train de lancer 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?
Section intitulée “Pourquoi Cette Approche?”L'application de mises à jour sur un événement de background ou de suppression présente quelques avantages clés pour l'expérience utilisateur :
-
Les utilisateurs ne sont pas interrompus par des invitations à mettre à jour ou obligés d'attendre des téléchargements au milieu d'une session.
-
Les mises à jour sont appliquées de manière fluide entre les sessions, afin que l'expérience de lancement de l'application soit toujours fraîche.
-
Vous pouvez livrer des mises à jour fréquemment sans vous soucier de perturber les utilisateurs actifs.
Le principal inconvénient est que si un utilisateur met son application en arrière-plan et la réactive rapidement, il peut perdre tout l'état non enregistré depuis que l'actualisation a été appliquée entre ces actions.
Pour atténuer cela, nous recommandons :
-
Enregistrer l'état fréquemment et le restaurer de manière gracieuse lorsque l'application est réactivée.
-
Éviter des 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).
Personnaliser Lorsque les Mises à Jour Sont Appliquées
Section intitulée “Personnaliser Lorsque les Mises à Jour Sont Appliquées”Dans certains cas, vous pourriez vouloir 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é un flux en cours avant de mettre à jour, ou coordonner une mise à jour d'application avec une modification côté serveur.
Capgo fournit une setDelay fonction qui vous permet de spécifier des conditions qui doivent être remplies avant que l'actualisation 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 aurait été mise en arrière-plan pendant au moins 60 secondes.
The conditions de retard disponibles sont :
date: Attendez jusqu'à une date et heure spécifique pour appliquer la mise à jour.background: Attendez une durée minimale après que l'application est mise en arrière-plan pour appliquer la mise à jour.nativeVersion: Attendez l'installation d'un fichier binaire natif avec une version minimale avant d'appliquer la mise à jour.kill: Attendez 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.
Appliquer les Mises à Jour Immédiatement
Section intitulée “Appliquer les Mises à Jour Immédiatement”For les mises à jour critiques ou les applications avec un état très simple, vous pouvez peut-être appliquer une mise à jour dès qu'elle est téléchargée, sans attendre un événement de fond ou de suppression. Capgo prend en charge cela via le autoUpdate policy dans votre Capacitor config.
autoUpdate s'est défini dans votre capacitor.config.ts fichier, pas dans JavaScript code. Il prend en charge ces valeurs :
falseou'off': Désactiver la mise à jour automatiquetrueou'atBackground'(par défaut) : Télécharger automatiquement et appliquer lorsque l'application passe en arrière-plan'atInstall': Appliquer immédiatement uniquement après une installation fraîche ou une mise à jour d'applications natives, sinon utilisez le flux de fond'onLaunch': Appliquer immédiatement à l'ouverture de l'application, sinon utiliser le flux de fond après le contrôle de lancement'always': Appliquer immédiatement chaque fois que Mise à jour automatique s'exécute'onlyDownload': Télécharger automatiquement, émettre, et ne pas définir le prochain bundle automatiquementupdateAvailableCopier dans le presse-papier
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;, __CAPGO_KEEP_0__ appliquera immédiatement une mise à jour dès que la téléchargement est terminé pendant un contrôle de mise à jour, même si l'utilisateur utilise actuellement l'application. Sans la mise à jour périodique activée, cela signifie que les mises à jour ne seront appliquées que lorsque l'application démarre ou reprend depuis l'arrière-plan. autoUpdate: 'always', Capgo will immediately apply an update as soon as the download completes during an update check, even if the user is actively using the app. Without periodic checking enabled, this means updates will only be applied when the app starts or resumes from background.
Notez que, en raison de la configuration native, les modes d'application instantanée nécessitent quelques manipulations supplémentaires dans votre __CAPGO_KEEP_0__ JavaScript. autoUpdate is a native configuration, instant apply modes require some additional handling in your JavaScript code.
Si vous souhaitez que __CAPGO_KEEP_0__ vérifie et télécharge les mises à jour automatiquement mais ne les applique jamais automatiquement, utilisez
Copier dans le presse-papierIf you want Capgo to check and download updates automatically but never apply them automatically, use autoUpdate: 'onlyDownload':
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'onlyDownload', }, },};translations updateAvailable après le téléchargement d'un bundle. Votre application peut ensuite décider quand appeler CapacitorUpdater.set() ou afficher son propre prompt de mise à jour.
Gestion automatique de l'écran de chargement
Section intitulée “Gestion automatique de l'écran de chargement”Pour rendre les modes d'application instantanés plus faciles à utiliser, Capgo fournit une autoSplashscreen option qui gère automatiquement la suppression de l'écran de chargement 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 lorsque la mise à jour est appliquée
- Le plugin cache automatiquement l'écran de chargement lorsque la mise à jour n'est pas nécessaire
- Vous n'avez pas besoin d'écouter manuellement pour
appReady[events ou appel]SplashScreen.hide()
Gestion manuelle de l'écran de splash
Section intitulée “Gestion manuelle de l'écran de splash”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();Le appReady événement se déclenche une fois l'application terminée d'être initialisée et d'avoir appliqué les mises à jour en attente. C'est le point auquel il est sécurisé 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 l'événement appReady [events ou appel], nous recommandons de définir la keepUrlPathAfterReload option de configuration sur true lorsque vous utilisez un mode d'application instantanée. Cela préserve l'adresse URL actuelle lorsqu'une mise à jour est appliquée, ce qui aide à maintenir la position de l'utilisateur dans l'application et à réduire la désorientation.
If vous n'avez pas géré l'événement et défini __CAPGO_KEEP_0__ lors de l'utilisation d'un mode d'application instantanée, l'utilisateur peut voir brièvement une version obsolète de l'application, être redirigé vers la route initiale ou voir un éclatement lors de l'application de la mise à jour. appReady En utilisant un mode d'application instantanée peut être utile pour livrer des correctifs de bogues critiques ou des correctifs de sécurité, mais cela implique quelques compromis : keepUrlPathAfterReload Si vous n'avez pas géré correctement l'écran de chargement (soit avec __CAPGO_KEEP_0__ ou un traitement manuel de l'événement), l'utilisateur peut voir un éclat ou un état de chargement pendant que la mise à jour est appliquée.
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.
- Si __CAPGO_KEEP_0__ n'est pas défini, la localisation de l'utilisateur dans l'application peut être perdue, ce qui peut les dérouter.
autoSplashscreenVous devrez soigneusement gérer la sauvegarde et la restauration de l'état pour garantir une transition fluide.appReadySi vous activez l'application instantanée, nous vous recommandons : - __CAPGO_KEEP_0__
- l'écran de chargement
keepUrlPathAfterReloadl'événement - l'événement
l'écran de chargement
- Utiliser
autoSplashscreen: truepour la mise en place la plus simple, ou gérer manuellement l'appReadySi vous avez besoin de logique personnalisée. - Définir
keepUrlPathAfterReloadpour conserver la localisation de l'utilisateur dans l'application.trueSauvegarder et restaurer l'état de l'application à mesure de l'application 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 localisation déstabilisants.
- Dans la plupart des cas, le comportement de mise à jour par défaut fournit la meilleure balance entre la livraison rapide des mises à jour et la minimisation de la perturbation. Mais pour les applications ayant des besoins spécifiques, __CAPGO_KEEP_0__ offre la flexibilité de personnaliser quand et comment les mises à jour sont appliquées.
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.
Titre de la section « Continuez de la section Mise à jour de l'application »
Si vous utilisezCapgo Mise à jour du comportement pour planifier la livraison d'actualisations en direct, connectez-le à 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 d'actualisations pour les détails d'implémentation dans Types d'actualisations, et Démarrage rapide pour les détails d'implémentation dans Démarrage rapide.