Événements
Copiez un prompt de configuration avec les étapes d'installation et la guide markdown complète pour ce plugin.
Le plugin de mise à jour Capacitor fournit plusieurs événements que vous pouvez écouter pour surveiller le processus de mise à jour et répondre à différents états.
Paramètres de l'écouteur d'événements
Section intitulée “Paramètres de l'écouteur d'événements”Pour écouter les événements, utilisez la addListener méthode sur l' CapacitorUpdater objet :
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Add a listenerconst listener = await CapacitorUpdater.addListener('eventName', (event) => { // Handle the event});
// Remove the listener when no longer neededlistener.remove();
// Remove all listenersawait CapacitorUpdater.removeAllListeners();Événements disponibles
Titre de la section « Événements disponibles »Émis pendant le processus de téléchargement du bundle. fournit des informations sur le progrès de téléchargement.
CapacitorUpdater.addListener('download', (event) => { console.log(`Download progress: ${event.percent}%`); console.log('Bundle info:', event.bundle);});Données de l'événement :
percent: nombre - Pourcentage de progrès de téléchargement (0-100)bundle: BundleInfo - Informations sur le bundle téléchargé
Émis lorsqu'une vérification de mise à jour détermine qu'une mise à jour n'est pas nécessaire.
CapacitorUpdater.addListener('noNeedUpdate', (event) => { console.log('App is up to date'); console.log('Current bundle:', event.bundle);});Données de l'événement :
bundle: BundleInfo - Informations sur le bundle actuel
updateAvailable
Section intitulée « mise à jour disponible »Émis lorsqu'une nouvelle mise à jour est disponible pour le téléchargement.
CapacitorUpdater.addListener('updateAvailable', (event) => { console.log('Update available'); console.log('New bundle:', event.bundle); // You can trigger a download here if needed});Données de l'événement :
bundle: BundleInfo - Informations sur le bundle de mise à jour disponible
downloadComplete
Section intitulée « téléchargement complet »Émis lorsqu'un téléchargement de bundle a été effectué avec succès.
CapacitorUpdater.addListener('downloadComplete', (event) => { console.log('Download completed'); console.log('Downloaded bundle:', event.bundle); // You might want to set this bundle as next});Données de l'événement :
bundle: Informations sur le bundle téléchargé
majorAvailable
Section intitulée “majorAvailable”Déclenché lorsque une mise à jour majeure est disponible mais bloquée par les paramètres d'auto-mise à jour.
CapacitorUpdater.addListener('majorAvailable', (event) => { console.log('Major update available:', event.version); // Notify user about major update});Données de l'événement :
version: chaîne - Le numéro de version de la mise à jour majeure
updateFailed
Section intitulée “updateFailed”Déclenché lorsque l'installation d'une mise à jour a échoué à la prochaine démarrage de l'application.
CapacitorUpdater.addListener('updateFailed', (event) => { console.error('Update failed to install'); console.log('Failed bundle:', event.bundle); // Handle rollback or retry logic});Données de l'événement :
bundle: BundleInfo - Informations sur le bundle qui n'a pas pu s'installer
downloadFailed
Section intitulée “downloadFailed”Déclenché lorsqu'un téléchargement de bundle a échoué.
CapacitorUpdater.addListener('downloadFailed', (event) => { console.error('Download failed for version:', event.version); // Handle download retry logic});Données de l'événement :
version: chaîne - La version qui n'a pas pu se télécharger
appReloaded
Section intitulée “appReloaded”Déclenché lorsqu'une application a été rechargée.
CapacitorUpdater.addListener('appReloaded', () => { console.log('App has been reloaded'); // Perform any necessary reinitialization});Données de l'événement : Aucune
appReady
Section intitulée “appReady”Déclenché lorsque l'application est prête à être utilisée après une mise à jour.
CapacitorUpdater.addListener('appReady', (event) => { console.log('App is ready'); console.log('Current bundle:', event.bundle); console.log('Status:', event.status);});Données de l'événement :
bundle: BundleInfo - Informations sur le bundle actuelstatus: chaîne - L'état prêt
Objet BundleInfo
Section intitulée “Objet BundleInfo”De nombreux événements incluent un BundleInfo objet avec les propriétés suivantes :
interface BundleInfo { id: string; // Unique bundle identifier version: string; // Bundle version downloaded: string; // Download timestamp checksum?: string; // Bundle checksum (if available) status: BundleStatus; // Bundle status}Où BundleStatus peut être :
'success'- Le bundle a été téléchargé avec succès'error'- Le téléchargement/ installation du bundle a échoué'pending'- Le bundle est en attente d'être défini comme le prochain'downloading'- Le bundle est actuellement en cours de téléchargement
Exemple : Flux de mise à jour complet
Section intitulée « Exemple : Flux de mise à jour complet »Voici un exemple de gestion du flux de mise à jour complet avec les événements :
import { CapacitorUpdater } from '@capgo/capacitor-updater';
export class UpdateManager { private listeners: any[] = [];
async setupListeners() { // Listen for available updates this.listeners.push( await CapacitorUpdater.addListener('updateAvailable', async (event) => { console.log('Update available:', event.bundle.version); // Auto-download the update await CapacitorUpdater.download({ url: event.bundle.url, version: event.bundle.version }); }) );
// Monitor download progress this.listeners.push( await CapacitorUpdater.addListener('download', (event) => { console.log(`Downloading: ${event.percent}%`); // Update UI progress bar this.updateProgressBar(event.percent); }) );
// Handle download completion this.listeners.push( await CapacitorUpdater.addListener('downloadComplete', async (event) => { console.log('Download complete:', event.bundle.version); // Set as next bundle await CapacitorUpdater.next({ id: event.bundle.id }); }) );
// Handle failures this.listeners.push( await CapacitorUpdater.addListener('downloadFailed', (event) => { console.error('Download failed:', event.version); this.showError('Update download failed. Please try again later.'); }) );
this.listeners.push( await CapacitorUpdater.addListener('updateFailed', (event) => { console.error('Update installation failed:', event.bundle.version); this.showError('Update installation failed. The app has been rolled back.'); }) );
// Handle app ready this.listeners.push( await CapacitorUpdater.addListener('appReady', async (event) => { console.log('App ready with bundle:', event.bundle.version); }) ); }
cleanup() { // Remove all listeners when no longer needed this.listeners.forEach(listener => listener.remove()); this.listeners = []; }
private updateProgressBar(percent: number) { // Update your UI progress bar }
private showError(message: string) { // Show error to user }}-
Lors de l'utilisation de la mise à jour automatique, appelez toujours cette méthode après l'initialisation de votre application pour éviter le rollback.
notifyAppReady()Lors de l'utilisation de la mise à jour automatique, appelez toujours cette méthode après l'initialisation de votre application pour éviter le rollback. -
Gérer les échecs avec élégance: Mettre en œuvre un traitement d'erreurs approprié pour les échecs de téléchargement et de mise à jour.
-
Fournir des retours d'information à l'utilisateur: Utiliser l'événement de progression de téléchargement pour afficher la progression de mise à jour aux utilisateurs.
-
Nettoyer les écouteurs: Supprimer les écouteurs d'événements lorsque ceux-ci ne sont plus nécessaires pour éviter les fuites de mémoire.
-
Tester les scénarios de mise à jour: Tester divers scénarios de mise à jour, notamment les échecs, les retours en arrière et les mises à jour majeures.
Continuez de la section Événements
Section intitulée « Continuez de la section Événements »Si vous utilisez Événements planifier le travail de plugin natif, le connecter à Utiliser @capgo/capacitor-mises à jour pour la capacité native dans Utiliser @capgo/capacitor-mises à jour, Répertoire de plugin Capgo pour le flux de travail du produit dans Répertoire de plugin Capgo, Plugins Capacitor par Capgo pour le détail d'implémentation dans Plugins Capacitor par Capgo, Ajouter ou Mettre à jour des Plugins pour le détail d'implémentation dans Ajouter ou Mettre à jour des Plugins, et Alternatives de Plugin d'Entreprise Ionic pour le flux de travail du produit dans Alternatives de Plugin d'Entreprise Ionic.