Einleitung
Sie haben bereits eine Progressive Web App. Sie funktioniert in Browsers, hat eine Manifestdatei und verwendet möglicherweise einen Service-Worker für Offline-Unterstützung. Wenn Sie nun eine Verteilung in App-Stores, Zugriff auf native Geräte-APIs oder eine bessere Onboarding-Anleitung benötigen, ist die Migration zu einer Capacitor-App in der Regel schneller als die Neuimplementierung Ihres Frontends.
Der größte Vorteil besteht darin, dass Sie fast alle Ihrer bestehenden Web-code beibehalten. In den meisten Fällen benötigen Sie nur:
- Produktionsweb-Assets erstellen,
- Capacitor mit den richtigen
webDir, - iOS- und Android-Projekte hinzufügen,
- und native Plugins nur dort, wo erforderlich, anbinden.
Wenn Ihre PWA saubere Routen und Komponentenlogik hat, kann dies nur wenige Stunden dauern.
Voraussetzungen
Schätzung: 2-5 Stunden, je nach plattformabhängigen Funktionen.
- Node.js 18+ mit Bun
- Ihr bestehendes PWA-Quellcode code (React, Vue, Angular, Svelte usw.)
- Xcode (nur für iOS, macOS)
- Android Studio (nur für Android)
- Apple-Entwicklerkonto, wenn Sie iOS veröffentlichen möchten
- Google Play-Entwicklerkonto für die Android-Verteilung
Schritt 1: Überprüfen Sie Ihr PWA, bevor Sie es in native umhüllen
Bevor Sie loslegen bunx cap init, stellen Sie sicher, dass Ihre Webanwendung für die Produktion bereit ist:
- Stellen Sie sicher, dass Ihre PWA ein Produktionsbuildskript hat (z.B.
bun run build). - Bestätigen Sie, dass Ihr Weboutput-Ordner deterministisch ist (oft
dist,build, oderout). - Entfernen Sie hartcodierte absolute Umleitungen, die an einen Browser-only-Kontext anknüpfen.
- Überprüfen Sie, ob die Verhaltensweise des Service-Workers mit mobilen WebViews kompatibel ist:
- Behalten Sie die Offlineunterstützung bei, wenn sie Ihren Benutzern hilft.
- Vermeiden Sie Browser-only-APIs, die in der eingebetteten Webview nicht verfügbar sind.
- Bestätigen Sie, dass PWA-Install-Anfragen und Browser-spezifische UX noch Sinn ergeben. In einer Capacitor-Anwendung werden Install-Anfragen normalerweise nicht benötigt.
Schritt 2: Anpassen Sie Web-only-Verhaltensweisen
Behalten Sie Ihre App-UI bei, aber schließen Sie Browser-only-Logik ab.
Verwenden Sie einen einfachen Plattform-Check um Install- und Push-Anfragen zu überprüfen:
import { Capacitor } from '@capacitor/core'
const isNative = Capacitor.isNativePlatform()
function registerInstallPrompt() {
if (isNative) return
// existing browser-only install or Web Push code
}
Dies vermeidet Browser-only-Logik, die innerhalb des nativen Containers ausgelöst wird.
Schritt 3: Initialisiere Capacitor in deinem PWA-Ordner
Von deinem bestehenden PWA-Root:
bun add @capacitor/core
bun add -D @capacitor/cli
Führe Capacitor init mit deinem Anwendungsnamen, Bundle-ID und Web-Ausgabeverzeichnis aus:
bunx cap init MyPWAApp com.example.my-pwa-app --web-dir dist
Wenn dein Build-Ordner build (Create React App) oder out (Next.js statische Exportierung), ersetze dist.
Füge eine grundlegende Capacitor-Konfiguration hinzu:
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
Schritt 4: Füge native Plattformen hinzu
Installiere die Kern-Native-Pakete und generiere Projekt-Ordner:
bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android
Zu diesem Zeitpunkt hat Capacitor bereits ios/ und android/ Ordner erstellt. Synchronisierung kopiert deine gebauten Web-Ressourcen in beide Plattformen.
Schritt 5: Erstellen Sie Ihre Web-App und synchronisieren Sie sie
Bauen Sie die PWA und synchronisieren Sie Web-Assets:
bun run build
bunx cap sync
Öffnen Sie nun native Projekte:
bunx cap open ios
bunx cap open android
Verbinden Sie von Xcode oder Android Studio aus ein Gerät oder einen Emulator und starten Sie es.
Schritt 6: Native Verbesserungen nach der Migration
Hier ersetzen Sie Web-only-Funktionen durch native APIs, wo nötig:
- Benachrichtigungen ->
@capacitor/push-notifications - Sichere Schlüssel/Wert-Speicherung ->
@capacitor/preferences - Kamera/Medien ->
@capacitor/camera - Biometrische Authentifizierung ->
@capacitor-community/native-biometric(oder Plugin Ihrer Wahl)
Für jedes neue native Plugin:
- Install das Plugin-Paket
- Konfigurieren Sie plugin-spezifische Einstellungen
- Dann wiederholen Sie die Installation und führen Sie sie erneut aus.
bunx cap sync
Schritt 7: App-Store-Übereinstimmungsprüfungen
Bevor die Einreichung:
Testen Sie tiefgreifende Links und Routing (
- und tiefgreifende Routen) auf beiden Plattformen.
/Überprüfen Sie, ob die Statusleiste, die sicheren Bereiche und die Orientierung korrekt sind. - Entfernen Sie nicht benötigte Web-only-Metadaten, die sich mit der App-Verhaltensweise überschneiden (z. B. Installationsanfragen).
- Halten Sie die App-Transport-Sicherheit und -Privatsphäre-Einstellungen konsistent mit Ihrer Richtlinie.
- Fügen Sie App-Ikons/Splash-Assets für jede Plattform hinzu.
- Run: __CAPGO_KEEP_0__
Wenn Ihre App OTA-Updates verwendet, pair Sie Ihre Releasepipeline mit einer native-sicheren Updatestrategie und berücksichtigen Sie Capgo für einen kontrollierten Rollout und Rollback.
Abschlusscheckliste
- Web-App-Builds werden sauber durchgeführt (
bun run build) - Capacitor
webDir bunx cap add iosmit den richtigenbunx cap add androidund- abgeschlossen
- Browser-only code paths are gated for native behavior
- Browser-only __CAPGO_KEEP_0__-Pfade sind für native Verhalten gesperrt
You already did most of the hard work when building your PWA. Wrapping it with Capacitor gives you:
- Vertriebsdistribution,
- Zugriff auf native APIs,
- Schnellere Iteration ohne vollständige code-Überarbeitung,
- Ein einzelner Bereitstellungsprozess für Web- und Mobilteams.
Beginnen Sie mit diesem Flow, dann iterieren Sie native-by-native auf der Grundlage von Analysen und Benutzerfeedback.
Fortsetzen Sie von Transformieren Sie Ihre PWA in eine native App mit Capacitor
Wenn Sie " Transformieren Sie Ihre PWA in eine native App mit Capacitor "für die Planung der Migration und die Unternehmensoperationen verwenden, verbinden Sie es mit " Capgo Enterprise" for the product workflow in Capgo Enterprise, __CAPGO_KEEP_0__ Enterprise", für das Produktworkflow in Ionic Enterprise Plugin Alternativen, Capgo Alternativen für das Produktworkflow in Capgo Alternativen, Capgo Consulting für das Produktworkflow in Capgo Consulting, und Capgo Premium Support für das Produktworkflow in Capgo Premium Support.