Mise à jour
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plug-in.
Lorsque vous publiez une mise à jour pour 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 :
-
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.
-
Une fois le téléchargement terminé, Capgo attend que l'utilisateur mette l'application en arrière-plan.
-
Lorsque l'utilisateur ramène ensuite l'application en avant-plan, ils seront en train de lancer la version mise à jour.
Cette progression 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 contraints d'attendre des téléchargements.
Pourquoi Cette Approche ?
Sous-titre « Pourquoi Cette Approche ? »La mise à jour d'une application lors d'un événement de fond 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 contraints d'attendre des 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 votre application en arrière-plan et la reprend rapidement, 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 de manière gracieuse lorsque l'application reprend.
-
É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'exécution exacte d'une mise à jour. 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 de l'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 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', }, ],});Ce exemple retarderait l'installation d'une mise à jour jusqu'après le 1er juin 2023 ET l'application aurait été mis en arrière-plan pendant au moins 60 secondes.
Les conditions de retard disponibles sont :
date: Attendre après 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 soit installé un fichier binaire natif avec une version minimale avant d'appliquer la mise à jour.kill: Attendre jusqu'au prochain événement de mort de l'application pour appliquer la mise à jour.
On peut combiner ces conditions pour contrôler précisément quand une mise à jour est installée.
Appliquer les Mises à Jour Immédiatement
Titre de la section « Mise à jour immédiate »Pour les mises à jour critiques ou les applications avec un état très simple, vous pouvez souhaitez appliquer une mise à jour dès qu'elle est téléchargée, sans attendre un événement de fond ou de mort. Capgo prend en charge cela via la autoUpdate politique dans votre Capacitor config.
autoUpdate fichier, pas en JavaScript __CAPGO_KEEP_0__. Il prend en charge ces valeurs : capacitor.config.ts file, not in JavaScript code. It supports these values:
falsecontext : Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `alternatives_cta_questions`). Page/zone : Page de comparaison des alternatives de mise à jour en direct de Capacitor. Rôle : Paragraphe marketing ou juridique long. Voir dans : page alternatives.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `alternatives_cta_questions` (Questions de CTA Alternatives). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `appflow_cta_questions`). Page/zone : Copie de marketing de comparaison/migration d'Appflow. Rôle : Paragraphe marketing ou juridique long. Voir dans : page ionic-appflow.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `appflow_cta_questions` (Questions de CTA Appflow). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `capwesome_cta_questions`). Page/zone : Page de comparaison de Capawesome. Rôle : Paragraphe marketing ou juridique long. Voir dans : page capwesome.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `capwesome_cta_questions` (Questions de CTA Capwesome). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `consulting_faq_subtitle`). Page/zone : Page de services de conseil. Rôle : Sous-titre ou slogan de section. Voir dans : page consulting.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `consulting_faq_subtitle` (Sous-titre FAQ de conseil). | Page/zone : Copie de marketing de comparaison/migration d'Appflow. Rôle : Étiquette de navigation ou élément de navigation court. Voir dans : page ionic-appflow.astro, page ionic-enterprise-plugins.astro, page solutions/ionic-enterprise-plugins.astro. Clé de message `appflow_plugins_or` (Appflow Plugins Ou).'off'ou désactivez les vérifications automatiques de mise à jourtrueou'atBackground'context : Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `alternatives_cta_questions`). Page/zone : Page de comparaison des alternatives de mise à jour en direct de Capacitor. Rôle : Paragraphe marketing ou juridique long. Voir dans : page alternatives.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `alternatives_cta_questions` (Questions de CTA Alternatives). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `appflow_cta_questions`). Page/zone : Copie de marketing de comparaison/migration d'Appflow. Rôle : Paragraphe marketing ou juridique long. Voir dans : page ionic-appflow.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `appflow_cta_questions` (Questions de CTA Appflow). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `capwesome_cta_questions`). Page/zone : Page de comparaison de Capawesome. Rôle : Paragraphe marketing ou juridique long. Voir dans : page capwesome.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `capwesome_cta_questions` (Questions de CTA Capwesome). | Fragment de texte HTML d'une chaîne de dialogue Capgo plus longue (clé parente `consulting_faq_subtitle`). Page/zone : Page de services de conseil. Rôle : Sous-titre ou slogan de section. Voir dans : page consulting.astro. Conservez les termes de produit et de marque Capgo ainsi que les termes de développeur exactement. Clé de message `consulting_faq_subtitle` (Sous-titre FAQ de conseil). | Page/zone : Copie de marketing de comparaison/migration d'Appflow. Rôle : Étiquette de navigation ou élément de navigation court. Voir dans : page ionic-appflow.astro, page ionic-enterprise-plugins.astro, page solutions/ionic-enterprise-plugins.astro. Clé de message `appflow_plugins_or` (Appflow Plugins Ou).'atInstall': Appliquez immédiatement uniquement après une installation fraîche ou une mise à jour de l'application native ; sinon utilisez"atBackground"comportement'onLaunch': Appliquez immédiatement uniquement lorsque l'application est ramenée à l'avant-plan à partir d'un état tué (démarrage froid). Après cette première vérification, revenez à"atBackground"comportement'always': Vérifiez à chaque transition vers l'avant-plan et appliquez immédiatement chaque fois qu'une mise à jour est disponible'onlyDownload': Vérifiez et téléchargez automatiquement, émettezupdateAvailable, et n'installez jamais le prochain bundle ou appliquez une mise à jour automatiquement
Testez une Build Native Sans Mises à Jour en Ligne
Titre de la section « Testez une Build Native Sans Mises à Jour en Ligne »Voir Testez les Builds Native Sans Mises à Jour en Ligne pour les garanties de configuration de version native, de politique de canal et de 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;Avec autoUpdate: 'always', Capgo effectue des vérifications à chaque transition en avant-plan et applique une mise à jour immédiate dès que le téléchargement est terminé pendant cette vérification, même si l'utilisateur utilise actuellement l'application. Les vérifications périodiques contrôlées par periodCheckDelay peuvent déclencher le même comportement d'application immédiate pendant que l'application reste ouverte.
Notez que puisque autoUpdate est une configuration native, les modes d'application instantanée nécessitent une gestion supplémentaire dans votre code JavaScript.
Téléchargement Automatique Sans Application
Sous-titre “Téléchargement Automatique Sans Application”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 téléchargement d'un bundle. Votre application peut ensuite décider de lancer CapacitorUpdater.set() ou afficher son propre prompt de mise à jour.
Gestion Automatique de l'Ecran de Splash
Titre de la section « Gestion automatique de l'écran de chargement »Pour rendre les modes d'application instantanée plus faciles à utiliser, Capgo fournit une option qui gère automatiquement la suppression de l'écran de chargement pour vous (disponible depuis la version 7.6.0) : autoSplashscreen Copier dans le presse-papier
const config: CapacitorConfig = { plugins: { CapacitorUpdater: { autoUpdate: 'always', // or 'atInstall' autoSplashscreen: true, // Automatically hide splashscreen keepUrlPathAfterReload: true, }, SplashScreen: { launchAutoHide: false, }, },};est activé : autoSplashscreen Le plugin cache automatiquement l'écran de chargement lorsque l'on applique une mise à jour
- Le plugin cache automatiquement l'écran de chargement lorsque aucune mise à jour n'est nécessaire
- Vous n'avez pas besoin d'écouter manuellement les
- événements ou d'appeler
appReadyGestion manuelle de l'écran de chargementSplashScreen.hide()
Titre de la section « Gestion manuelle de l'écran de chargement »
Section titled “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();Le appReady l'événement se déclenche une fois l'application a terminé de s'initialiser et d'appliquer les mises à jour en attente. C'est le point auquel il est sûr de montrer l'interface utilisateur de votre application, car cela garantit que l'utilisateur verra la dernière version.
En plus de gérer l'événement appReady nous recommandons de définir l'option de configuration sur keepUrlPathAfterReload lorsque vous utilisez un mode d'application instantanée. Cela préserve l'actuelle chemin d'URL 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'avez pas géré l'événement
et défini appReady lorsque vous utilisez un mode d'application instantanée, l'utilisateur peut brièvement voir une version périmée de l'application, être redirigé vers la route initiale ou voir un éclatement pendant que la mise à jour est appliquée. keepUrlPathAfterReload __CAPGO_KEEP_0__
En utilisant un mode d'application instantanée, vous pouvez livrer des correctifs de bogues critiques ou des mises à jour de sécurité, mais cela comporte quelques compromis :
- L’utilisateur peut voir un bref éclat ou un état de chargement pendant l'application de la mise à jour si vous n'avez pas géré correctement l'écran de splash (soit avec
autoSplashscreenou le traitement manuelappReadydes événements). - Si la mise à jour modifie l'état de l'application ou l'interface utilisateur, l’utilisateur peut voir un changement disruptif au milieu d'une session.
- La localisation de l'utilisateur dans l'application peut être perdue si
keepUrlPathAfterReloadn'est pas défini, ce qui peut les dérouter. - Vous devrez gérer soigneusement la sauvegarde et la restauration de l'état pour assurer 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'événementappReadysi vous avez besoin de logique personnalisée. - Paramètres
keepUrlPathAfterReloadàtruecontexte : Page/zone : Page de produit de mises à jour en temps réel. Rôle : Petit élément de navigation ou d'interface utilisateur. Clé de message `live_update_dynamic_label_to` (Étiquette dynamique de mise à jour en temps réel To). - pour conserver l'emplacement de l'utilisateur dans l'application.
- Enregistrement et restauration de l'état de l'application au besoin pour éviter la perte de progression de l'utilisateur.
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.
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.
Continuez de la section Mise à jour du comportementTitre de la section « Continuez de la section Mise à jour du comportement » Si vous utilisez Mise à jour du comportement pour planifier la livraison de mises à jour en temps réel, connectez-l’avec les mises à jour en temps réel Capgo pour le flux de travail du produit dans les Mises à jour en direct Capgo Vue d'ensemble pour le détail d'implémentation dans Vue d'ensemble Fonctionnalités pour le détail d'implémentation dans Fonctionnalités Types de Mises à jour pour le détail d'implémentation dans Types de Mises à jour, et Démarrage pour le détail d'implémentation dans Démarrage