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, API di dispositivo nativo o un funnel di onboarding migliore, migrare a un'app Capacitor è spesso più veloce che ricreare il front-end.
Il vantaggio più grande è che conservi quasi tutto il tuo web code esistente. In molti casi, hai bisogno solo di:
- costruisci asset web di produzione,
- inizializza Capacitor con le giuste
webDir, - aggiungi progetti iOS e Android,
- e collega plugin nativi solo dove necessario.
Se il tuo 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 del piattaforma.
- Node.js 18+ con Bun
- La tua sorgente PWA esistente code (React, Vue, Angular, Svelte, ecc.)
- Xcode (solo per iOS, macOS)
- Android Studio (solo per Android)
- Se hai l'intenzione di pubblicare su iOS, necessiti di un account di sviluppatore Apple
- Se desideri distribuire su Google Play per Android, necessiti di un account di sviluppatore di Google Play
Passo 1: Controlla la tua PWA prima di avvolgerla in nativa
Prima di eseguire bunx cap initVerifica che il tuo app web sia pronto per la produzione:
- Assicurati che la tua PWA abbia uno script di build di produzione (ad esempio,
bun run build). - Conferma che il tuo output web sia deterministico (spesso
dist,buildoout). - Elimina i redirect assoluti hardcodati che presuppongono un contesto browser-only.
- Verifica il comportamento del worker di servizio per assicurarsi che sia compatibile con le viste Web dei dispositivi mobili:
- Conserva il supporto offline se aiuta i tuoi utenti.
- Evita le API del browser esclusivo che non sono disponibili nella vista web incorporata.
- Conferma che le richieste di installazione PWA e l'interfaccia utente specifica del browser ancora hanno senso. In un'app Capacitor, le richieste di installazione dell'app sono di solito non necessarie.
Passo 2: Adatta i comportamenti esclusivi del browser
Conserva la tua interfaccia utente dell'app ma blocca la logica del browser.
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 del browser si attivi all'interno del contenitore nativo.
Passo 3: Inizia Capacitor nella cartella della tua PWA
Dalla tua cartella 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 percorso di build è build o (Create React App) o out o (Next.js static export), sostituisci dist.
Aggiungi una configurazione base 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
Al momento Capacitor ha creato ios/ e android/ cartelle. La sincronizzazione copierà i tuoi asset web costruiti in entrambe le piattaforme.
Passo 5: Costruisci il tuo 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: Miglioramenti nativi dopo la migrazione
È qui che sostituisci le funzionalità esclusivamente web con API native dove necessario:
- Push notifiche ->
@capacitor/push-notifications - Archiviazione sicura chiave/valore ->
@capacitor/preferences - Camera / media ->
@capacitor/camera - Autenticazione biometrica ->
@capacitor-community/native-biometric(o plugin di scelta)
Per ogni nuovo plugin nativo:
- Installa il pacchetto del plugin
- Configura le impostazioni specifiche del plugin
- Esegui:
bunx cap sync
Poi ricostruisci e esegui nuovamente.
Passo 7: Verifica della parità delle app store
Prima della sottoscrizione:
- Testa i collegamenti profondi e la navigazione (
/e percorsi profondi) su entrambe le piattaforme. - Verifica che la barra dello stato, 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 e privacy dell'app coerenti con la tua politica.
- Aggiungi icone e asset di splash per ogni piattaforma.
Se la tua app utilizza gli aggiornamenti OTA, sincronizza il tuo flusso di rilascio con una strategia di aggiornamento sicura per le app e considera Capgo per un rilascio controllato e un rollback.
Elenco di controllo finale
- Applicazioni web costruiscono pulitamente (
bun run build) - Capacitor inizializzato con il giusto
webDir bunx cap add iosebunx cap add androidcompletati- Le applicazioni native funzionano su dispositivi reali
- Le vie code esclusivamente per browser sono bloccate per comportamento nativo
- I canali di aggiornamento e gli asset per le store sono configurati
Avete già fatto la maggior parte del lavoro duro quando avete costruito la vostra PWA. Avvolgendola con Capacitor ottenete:
- Distribuzione nei store
- Accesso alle API native
- Iterazione più veloce senza una completa riscrittura di code
- Un unico percorso di distribuzione per team web e mobili.
Parti da questo flusso, poi iterare native-by-native in base alle analisi e ai feedback degli utenti.
Continua da Trasforma la tua App PWA in un'app nativa con Capacitor
Se stai utilizzando Trasforma la tua App 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, Ionic Enterprise Plugin Alternatives Capgo Alternatives Capgo Alternatives per il flusso di lavoro del prodotto in Capgo Alternatives, 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.