Saltare al contenuto

Inizio

Fermata di terminale
bun add @capgo/capacitor-updater
bunx cap sync

Per la maggior parte degli utenti, consigliamo di seguire il guida di avvio rapido principale che copre sia l'installazione del plugin che Capgo l'integrazione del cloud.

Questa guida di avvio copre i dettagli tecnici del plugin per gli utenti avanzati che desiderano comprendere i meccanismi sottostanti o implementare aggiornamenti self-hosted.

Il plugin Capacitor Updater consente l'aggiornamento over-the-air (OTA) per le tue Capacitor applicazioni. Ciò ti consente di inviare aggiornamenti all'app senza dover passare dalle revisioni delle app store.

  1. Download del Pacchetto: Il plugin scarica i pacchetti di aggiornamento (file ZIP contenenti i tuoi asset web)
  2. Estrazione: I pacchetti vengono estratti nel storage del dispositivo
  3. Hot Reload: L'app si sposta sul nuovo pacchetto senza richiedere un riavvio
  4. Fallback: Se un aggiornamento fallisce, l'app si ripristina alla versione precedente funzionante

La modalità più semplice per utilizzare il plugin con la gestione automatica degli aggiornamenti:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Plugin handles everything automatically
// Configure in capacitor.config.ts

Aggiungi al tuo capacitor.config.ts:

{
plugins: {
CapacitorUpdater: {
autoUpdate: true,
updateUrl: 'https://your-update-server.com/api/updates'
}
}
}

Per un controllo avanzato sul processo di aggiornamento:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Download an update
const bundle = await CapacitorUpdater.download({
url: 'https://your-server.com/updates/v1.0.1.zip',
version: '1.0.1'
});
// Set the bundle (will be used on next app start)
await CapacitorUpdater.set({
id: bundle.id
});
// Or reload immediately
await CapacitorUpdater.reload();

Non è richiesta alcuna configurazione aggiuntiva. Il plugin funziona direttamente dal box.

Non è richiesta alcuna configurazione aggiuntiva. Il plugin funziona direttamente dal box.

import { CapacitorUpdater } from '@capgo/capacitor-updater';
const bundle = await CapacitorUpdater.download({
url: 'https://example.com/update.zip',
version: '1.0.1'
});
console.log('Downloaded bundle:', bundle.id);
// Set bundle to be used on next app start
await CapacitorUpdater.set({
id: bundle.id
});
// Reload app immediately with new bundle
await CapacitorUpdater.reload();
const { bundles } = await CapacitorUpdater.list();
console.log('Available bundles:', bundles);
await CapacitorUpdater.delete({
id: 'bundle-id'
});
const { bundle } = await CapacitorUpdater.current();
console.log('Current bundle:', bundle.version);

Ascolta gli eventi di aggiornamento:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Listen for download progress
CapacitorUpdater.addListener('download', (info) => {
console.log('Download progress:', info.percent);
});
// Listen for download completion
CapacitorUpdater.addListener('downloadComplete', (bundle) => {
console.log('Download complete:', bundle.version);
});
// Listen for update failures
CapacitorUpdater.addListener('updateFailed', (error) => {
console.error('Update failed:', error);
});
// Listen for successful updates
CapacitorUpdater.addListener('updateAvailable', (info) => {
console.log('Update available:', info.version);
});

Configura il plugin nei tuoi capacitor.config.ts:

{
plugins: {
CapacitorUpdater: {
// Auto-update settings
autoUpdate: true,
updateUrl: 'https://api.example.com/updates',
// Update behavior
resetWhenUpdate: true,
directUpdate: false,
// Version settings
version: '1.0.0',
// Security
allowModifyUrl: false,
// Stats collection
statsUrl: 'https://api.example.com/stats',
// Channel (for Capgo cloud)
defaultChannel: 'production'
}
}
}

La migliore via per iniziare:

// Install the Capgo CLI
bun add -g @capgo/cli
// Login to Capgo
npx @capgo/cli login
// Upload your first bundle
npx @capgo/cli bundle upload
// The plugin auto-updates from Capgo cloud

Vedi il guida di avvio rapido principale per i dettagli.

Hosta il tuo server di aggiornamento:

// Configure your update endpoint
{
plugins: {
CapacitorUpdater: {
autoUpdate: true,
updateUrl: 'https://your-server.com/api/check-update'
}
}
}

Il tuo server dovrebbe restituire:

{
"version": "1.0.1",
"url": "https://your-server.com/updates/1.0.1.zip"
}

Vedi Modalità Auto-Hosted per ulteriori dettagli.

Controllo completo sugli aggiornamenti:

import { CapacitorUpdater } from '@capgo/capacitor-updater';
async function checkAndUpdate() {
// Check for updates from your server
const response = await fetch('https://api.example.com/check-update');
const { version, url } = await response.json();
// Download the update
const bundle = await CapacitorUpdater.download({
url,
version
});
// Notify bundle is ready
await CapacitorUpdater.notifyAppReady();
// Set as next version
await CapacitorUpdater.set({ id: bundle.id });
// Reload when ready
await CapacitorUpdater.reload();
}
  • Chiamare sempre notifyAppReady() quando il tuo app carica con successo
  • Testare le aggiornamenti attentamente prima di pubblicarli in produzione
  • Implementare un gestione degli errori appropriata per le fallite di rete
  • Utilizzare i numeri di versione in modo coerente
  • Tenere le dimensioni dei pacchetti piccole per scaricamenti più veloci
  • Monitorare le tassi di successo degli aggiornamenti