Zum Hauptinhalt springen
Tutorials

Verwandle deine PWA mit Capacitor in eine Native App

Verwandle eine bestehende Progressive Web App in eine native Capacitor Mobile App für iOS und Android. Ein praktischer Guide, um deine PWA mit minimalen code Änderungen zu verpacken.

Mit Capacitor Capgo deine PWA in eine Native App verwandeln – Blog-Illustration

Einführung

Du hast bereits eine Progressive Web App. Sie läuft im Browser, besitzt ein Manifest und nutzt vielleicht einen Service Worker für Offline-Support. Wenn du jetzt App-Store-Distribution, native Device-APIs oder einen besseren Onboarding-Funnel brauchst, ist die Migration zu einer Capacitor App meist schneller, als dein Frontend neu zu schreiben.

Der größte Vorteil ist, dass du fast deinen gesamten bestehenden Web-code behältst. In den meisten Fällen musst du nur:

  • Web-Assets für Production builden,
  • Initialisiere Capacitor mit dem richtigen webDir,
  • iOS- und Android-Projekte hinzufügen,
  • und native Plugins nur dort einbinden, wo nötig.

Wenn deine PWA saubere Routen und Komponentenlogik hat, kann das nur ein paar Stunden dauern.

Voraussetzungen

Geschätzte Dauer: 2–5 Stunden, je nach plattformspezifischen Features.

  • Node.js 18+ mit Bun
  • Deine bestehende PWA-Quelle code (React, Vue, Angular, Svelte usw.)
  • Xcode (nur für iOS, macOS)
  • Android Studio (für Android)
  • Apple Developer-Konto, falls du iOS veröffentlichen möchtest
  • Google Play Developer-Konto für die Android-Verteilung

Schritt 1: PWA vor dem Native-Wrapping prüfen

Bevor du ausführst bunx cap init, ob deine Web-App produktionsreif ist:

  1. Stelle sicher, dass deine PWA ein Production-Build-Skript hat (z. B. bun run build).
  2. Prüfe, dass dein Web-Output-Ordner deterministisch ist (oft dist, build, oder out).
  3. Entferne hartkodierte absolute Redirects, die einen reinen Browser-Kontext voraussetzen.
  4. Prüfe, ob das Service-Worker-Verhalten mit mobilen WebViews kompatibel ist:
    • Behalte Offline-Support bei, wenn er deinen Nutzern hilft.
    • Vermeide Browser-only-APIs, die im eingebetteten WebView nicht verfügbar sind.
  5. Prüfe, ob PWA-Install-Prompts und browser-spezifische UX noch sinnvoll sind. In einer Capacitor-App sind App-Install-Prompts in der Regel nicht nötig.

Schritt 2: Web-only-Verhalten anpassen

Behalte die App-UI bei, aber schalte browser-spezifische Logik ab.

Nutze eine einfache Plattformprüfung für Install- und Push-Prompts:

import { Capacitor } from '@capacitor/core'

const isNative = Capacitor.isNativePlatform()

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

So wird verhindert, dass browser-spezifische Logik im nativen Container ausgeführt wird.

Schritt 3: Capacitor im PWA-Ordner initialisieren

Aus Ihrem bestehenden PWA-Root-Verzeichnis:

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

Führen Sie Capacitor init mit Ihrem App-Namen, Bundle-ID und Web-Output-Verzeichnis aus:

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

Falls Ihr Build-Ordner build (Create React App) oder out (Next.js static export), ersetze dist.

Füge eine einfache Capacitor-Config 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: Native Plattformen hinzufügen

Installiere die nativen Core-Packages und generiere die Projektordner:

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

An diesem Punkt hat Capacitor ios/ und android/ Ordner erstellt. Beim Sync werden deine gebauten Web-Assets in beide Plattformen kopiert.

Schritt 5: Web-App bauen und syncen

Baue die PWA und synce die Web-Assets:

bun run build
bunx cap sync

Öffne nun die nativen Projekte:

bunx cap open ios
bunx cap open android

Verbinde in Xcode oder Android Studio ein Gerät oder einen Emulator und starte die App.

Schritt 6: Native Erweiterungen nach der Migration

Hier ersetzen Sie web-spezifische Funktionen bei Bedarf durch native APIs:

  • Push-Benachrichtigungen -> @capacitor/push-notifications
  • Sichere Key/Value-Speicherung -> @capacitor/preferences
  • Kamera / Medien -> @capacitor/camera
  • Biometrische Authentifizierung -> @capacitor-community/native-biometric (oder Plugin nach Wahl)

Für jedes neue native Plugin:

  1. Plugin-Paket installieren
  2. Plugin-spezifische Einstellungen konfigurieren
  3. Führe aus:
bunx cap sync

Dann neu bauen und erneut ausführen.

Schritt 7: App-Store-Paritäts-Checks

Vor der Einreichung:

  • Deep Links und Routing (/ und Deep Routes) auf beiden Plattformen testen.
  • Sicherstellen, dass Statusleiste, Safe Areas und Orientierung korrekt sind.
  • Nicht genutzte, nur für Web relevante Metadaten entfernen, die mit dem App-Verhalten kollidieren (z. B. Installationsaufforderungen).
  • App Transport Security- und Datenschutz-Einstellungen mit Ihrer Richtlinie abstimmen.
  • App-Icons und Splash-Assets für jede Plattform hinzufügen.

Wenn Ihre App OTA-Updates verwendet, kombinieren Sie Ihre Release-Pipeline mit einer nativ sicheren Update-Strategie und erwägen Sie Capgo für kontrolliertes Rollout und Rollback.

Abschließende Checkliste

  • Web-App baut fehlerfrei (bun run build)
  • Capacitor mit dem richtigen webDir
  • bunx cap add ios und bunx cap add android abgeschlossen
  • Native Apps laufen auf echten Geräten
  • Nur-Browser-code-Pfade sind für natives Verhalten abgesichert
  • Update-Channels und App-Store-Assets sind konfiguriert

Die meiste Arbeit hast du beim Erstellen deiner PWA schon erledigt. Das Wrapping mit Capacitor gibt dir:

  • Store-Distribution,
  • Zugriff auf native APIs,
  • Schnellere Iterationen ohne kompletten code-Rewrite,
  • Einen Deployment-Pfad für Web- und Mobile-Teams.

Starten Sie mit diesem Flow und iterieren Sie dann nativ basierend auf Analytics und User-Feedback.

Weiter geht's: Von der PWA zur nativen App mit Capacitor

Wenn du es nutzt Verwandle deine PWA mit Capacitor in eine Native App um Migration und Enterprise-Betrieb zu planen, verbinde es mit Capgo Enterprise für den Produkt-Workflow in Capgo Enterprise, Ionic Enterprise Plugin-Alternativen für den Produkt-Workflow in Ionic Enterprise Plugin-Alternativen, Capgo Alternativen für den Produkt-Workflow in Capgo Alternativen, Capgo Beratung für den Produkt-Workflow in Capgo Consulting und Capgo Premium-Support für den Produkt-Workflow in Capgo Premium Support.

Live-Updates für Capacitor-Apps

Wenn ein Bug im Web-Layer live ist, liefere den Fix über Capgo aus, statt Tage auf die App-Store-Freigabe zu warten. Nutzer bekommen das Update im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Neues aus unserem Blog

Capgo gibt dir die besten Insights, um eine wirklich professionelle Mobile App zu erstellen.