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:
- Assicurati di avere uno script di build di produzione per la tua PWA (ad esempio,
bun run build). - Verifica che il cartellone di output web sia deterministico (spesso
dist,build, oout). - Elimina i redirect assoluti hardcodati che presuppongono un contesto browser-only.
- 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.
- 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-biometricO (o plugin di scelta)
Per ogni nuovo plugin nativo:
- Installa il pacchetto del plugin
- Configura le impostazioni specifiche del plugin
- 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 iosebunx cap add androidcompletato- 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.