Saltare al contenuto principale
Guida pratica

Trasforma la tua App Web Progressiva in un'app nativa con Capacitor

Convert an existing Progressive Web App into a native Capacitor mobile app for iOS and Android. A practical guide to packaging your PWA with minimal code changes.

Crediti dell'articolo

Martin Donadieu

Autore

Valeria

Recensore

Jordan

Curatore

Trasforma la tua App Web Progressiva in un'app nativa con Capacitor

Introduzione

Se già hai una App Web Progressiva. Funziona nei browser, ha un manifesto e forse utilizza un worker di servizio per il supporto offline. Se ora hai bisogno di distribuzione negli store di app, di API native per dispositivi o di un miglior percorso di onboarding, migrare a un'app Capacitor è solitamente più veloce di quanto non sia ricodificare il front-end.

Il vantaggio maggiore è che conservi quasi tutto il tuo code web esistente. In molti casi, hai bisogno solo di:

  • costruire asset web di produzione,
  • inizializzare Capacitor con le impostazioni giuste webDir,
  • aggiungere progetti iOS e Android,
  • e collegare plugin nativi solo dove necessario.

Se la tua PWA ha percorsi puliti e logica di componente, ciò può richiedere solo poche ore.

Prerequisiti

Tempo stimato: 2-5 ore, a seconda delle funzionalità specifiche dei singoli piattaforme.

  • Node.js 18+ con Bun
  • Il tuo codice PWA esistente code (React, Vue, Angular, Svelte, ecc.)
  • Xcode (solo per iOS e macOS)
  • Android Studio (solo per Android)
  • Un account di sviluppatore Apple se pianifichi di pubblicare per iOS
  • Un account di sviluppatore Google Play per la distribuzione Android

Passo 1: Controlla il tuo PWA prima di avvolgerlo in nativo

Prima di eseguire bunx cap init, verificare che il tuo'app web sia pronta per la produzione:

  1. Assicurati di avere uno script di build di produzione per la tua PWA (ad esempio, bun run build).
  2. Verifica che il cartellone di output web sia deterministico (spesso dist, build, o out).
  3. Elimina i redirect assoluti hardcodati che presuppongono un contesto browser-only.
  4. Verifica che il comportamento del worker di servizio sia compatibile con i WebViews mobili:
    • Conserva il supporto offline se aiuta i tuoi utenti.
    • Evita le API browser-only che non sono disponibili nel webview incorporato.
  5. Verifica che le richieste di installazione della PWA e l'interfaccia utente specifica del browser siano ancora pertinenti. In un'app Capacitor, le richieste di installazione dell'app sono spesso non necessarie.

Passo 2: Adatta i comportamenti web-only

Conserva la tua interfaccia utente dell'app ma blocca la logica browser-only.

Utilizza un controllo di piattaforma semplice intorno alle richieste di installazione e push:

import { Capacitor } from '@capacitor/core'

const isNative = Capacitor.isNativePlatform()

function registerInstallPrompt() {
  if (isNative) return
  // existing browser-only install or Web Push code
}

Questo evita che la logica browser-only si attivi all'interno del contenitore nativo.

Passo 3: Inizializza Capacitor nella cartella del tuo PWA

Dalla radice del tuo PWA esistente:

bun add @capacitor/core
bun add -D @capacitor/cli

Esegui Capacitor init con il nome dell'app, l'ID del bundle e il percorso di output web:

bunx cap init MyPWAApp com.example.my-pwa-app --web-dir dist

Se il tuo cartello di build è build (Create React App) o out (Next.js static export), sostituisci dist.

Aggiungi una configurazione base di Capacitor:

import type { CapacitorConfig } from '@capacitor/cli'

const config: CapacitorConfig = {
  appId: 'com.example.my-pwa-app',
  appName: 'MyPWAApp',
  webDir: 'dist',
  server: {
    iosScheme: 'https',
  },
}

export default config

Passo 4: Aggiungi piattaforme native

Installa pacchetti nativi di base e genera cartelle di progetto:

bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android

In questo punto Capacitor ha creato ios/ e android/ cartelle. La sincronizzazione copierà i tuoi asset web costruiti in entrambe le piattaforme.

Passo 5: Costruisci l'app web e sincronizza

Costruisci la PWA e sincronizza gli asset web:

bun run build
bunx cap sync

Ora apri i progetti nativi:

bunx cap open ios
bunx cap open android

Dal Xcode o Android Studio, collega un dispositivo o un emulatore e esegui.

Passo 6: Migrazioni native dopo la migrazione

Ecco dove sostituisci le funzionalità esclusive web con le API native dove necessario:

  • Notifiche push -> @capacitor/push-notifications
  • Archiviazione sicura di valori chiave -> @capacitor/preferences
  • Camera / media -> @capacitor/camera
  • Autenticazione biometrica -> @capacitor-community/native-biometric O (o plugin di scelta)

Per ogni nuovo plugin nativo:

  1. Installa il pacchetto del plugin
  2. Configura le impostazioni specifiche del plugin
  3. Esegui:
bunx cap sync

Riavvia e ricostruisci nuovamente.

Passo 7: Verifica della parità con le app store

Prima della sottoscrizione:

  • Testa i collegamenti profondi e la routing (/ e percorsi profondi) su entrambe le piattaforme.
  • Verifica che lo stato della barra degli strumenti, le aree sicure e l'orientamento siano corretti.
  • Elimina i metadati web non utilizzati che confliggono con il comportamento dell'app (ad esempio, le richieste di installazione).
  • Mantieni le impostazioni di sicurezza dei trasporti e la privacy coerenti con la tua politica.
  • Aggiungi icone e asset di splash per ogni piattaforma.

If il tuo app utilizza aggiornamenti OTA, sincronizza la tua pipeline di rilascio con una strategia di aggiornamento sicura per il nativo e considera Capgo per un rilascio controllato e un rollback.

Elenco di controllo finale

  • Applicazione web costruita pulitamente (bun run build)
  • Capacitor inizializzato con il giusto webDir
  • bunx cap add ios e bunx cap add android completato
  • Gli app nativi eseguono su dispositivi reali
  • Le vie del browser solo code sono bloccate per il comportamento nativo
  • I canali di aggiornamento e gli asset dell'app store sono configurati

Hai già fatto la maggior parte del lavoro duro quando hai costruito la tua PWA. Avvolgendola con Capacitor ti dà:

  • La distribuzione del negozio,
  • L'accesso alle API native,
  • Una iterazione più veloce senza una completa code ricompilazione,
  • Un percorso di distribuzione unico per i team web e mobili.

Avvia da questo flusso, poi iterare native-by-native in base alle analisi e ai feedback degli utenti.

Continua da Trasforma la tua PWA in un'app nativa con Capacitor

Se stai utilizzando Trasforma la tua PWA in un'app nativa con Capacitor per pianificare la migrazione e le operazioni aziendali, connettilo con Capgo Enterprise for the product workflow in Capgo Enterprise, per il flusso di lavoro del prodotto in __CAPGO_KEEP_0__ Enterprise, e le alternative del plugin aziendale di Ionic. per il flusso di lavoro del prodotto in Alternative per Ionic Enterprise Plugin Capgo Alternative per il flusso di lavoro del prodotto in Capgo Alternative Capgo Consulting per il flusso di lavoro del prodotto in Capgo Consulting, e Capgo Supporto Premium per il flusso di lavoro del prodotto in Capgo Supporto Premium.

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug nel layer web è attivo, invia la correzione attraverso Capgo anziché attendere giorni per l'approvazione della store. Gli utenti ricevono l'aggiornamento in background mentre le modifiche native rimangono nel normale percorso di revisione.

Supporto umano da parte di Martin

Inizia subito

Ultimi articoli dal nostro Blog

Capgo ti offre le migliori informazioni che ti servono per creare un'app mobile davvero professionale.