Laravel-Web-App als Mobile App: Livewire und Inertia in die Stores
Kurz gesagt
Eine Laravel-Fachanwendung mit Blade, Livewire oder Inertia lässt sich ohne Neuentwicklung als iOS- und Android-App veröffentlichen. Ein nativer Wrapper lädt die Anwendung und ergänzt Push, Kamera und native Navigation. Entscheidend sind wenige Stellschrauben: Session-Laufzeit, 419-Fehler nach dem Fortsetzen der App, Upload-Limits für Handyfotos und ein sauberer Ablauf für Push-Tokens.
Typischer Fall: Fachanwendung, die mobil werden soll
Ob Auftragsportal, Wartungsprotokoll oder Kundenbereich – viele Laravel-Projekte im Mittelstand sind Fachanwendungen mit klarer Serverlogik. Außendienst und Kunden möchten sie als App nutzen, mit Benachrichtigungen und Fotofunktion. Ein Neubau mit eigener API und nativen Clients verdoppelt den Pflegeaufwand. Ein Wrapper erhält Ihre Architektur, Deployments laufen weiter über die bestehende Pipeline, und Ihr Team bleibt in der gewohnten PHP-Umgebung.
Checkliste vor dem Start
- Läuft die Anwendung vollständig unter HTTPS und auf genau einer Domain (mit oder ohne
www)? - Ist die Oberfläche auf Smartphones bedienbar, inklusive Tabellen und Formularen?
- Gibt es Downloads (PDF, CSV), die in der App sinnvoll geöffnet oder geteilt werden müssen?
- Welche Ereignisse sollen eine Push-Benachrichtigung auslösen?
- Wer betreut die Entwickler-Accounts bei Apple und Google – idealerweise Ihr Unternehmen selbst?
Sessions und der 419-Fehler
Im Browser stört eine kurze Session kaum. In einer App, die tagelang im Hintergrund liegt, wirkt ständiges Neuanmelden wie ein Fehler. SESSION_LIFETIME steht standardmäßig auf 120 Minuten; für längere Anmeldungen ist das Remember-Me-Cookie von Laravel der bessere Hebel als eine pauschal verlängerte Session. SESSION_SECURE_COOKIE gehört auf true.
Häufiger noch ist „419 Page Expired“: Die App wird nach Stunden fortgesetzt, die Seite hält ein veraltetes CSRF-Token, das nächste Formular scheitert. Lösungen je nach Stack:
- Blade: Seite neu laden, wenn die App nach längerer Pause in den Vordergrund kommt.
- Livewire: Die Standardreaktion auf eine abgelaufene Seite ist ein Browser-Dialog. Ersetzen Sie sie durch ein stilles Neuladen oder eine Weiterleitung zum Login.
- Inertia: 419-Antworten im Axios-Interceptor abfangen und vollständig neu laden.
Routen für die App aus dem CSRF-Schutz auszunehmen, ist keine Lösung – die Webview ist ein Browser-Kontext.
Fotos, Uploads und Kamera
Ein Dateifeld mit accept="image/*" und capture="environment" öffnet die Kamera, wenn der Wrapper die Berechtigungen und unter Android den nativen Dateiauswahldialog bereitstellt. Serverseitig scheitern Handyfotos oft an Limits: upload_max_filesize liegt in PHP standardmäßig bei 2 MB, post_max_size bei 8 MB, client_max_body_size in nginx bei 1 MB. Livewire hat für temporäre Uploads eigene Regeln in config/livewire.php. Verkleinern Sie Bilder möglichst vor dem Upload und legen Sie fest, ob HEIC-Dateien vom iPhone akzeptiert werden.
Auch der umgekehrte Weg braucht Aufmerksamkeit: Rechnungen, Lieferscheine oder Exporte, die Laravel per Storage::download mit Content-Disposition: attachment ausliefert, muss die App als Datei entgegennehmen und zum Öffnen oder Teilen anbieten. Testen Sie diese Fälle auf echten Geräten, nicht nur im Simulator, und prüfen Sie dabei auch große Dateien und langsame Mobilfunkverbindungen.
Push über die native Brücke
Der Wrapper holt die Erlaubnis ein und erhält ein Geräte-Token. Über die JavaScript-Brücke landet es in Ihrer Seite, die es an eine authentifizierte Route sendet. Laravel speichert es pro Nutzer und Gerät und verschickt Benachrichtigungen über Laravel Notifications mit einem FCM-Kanal oder die API eines Push-Dienstes – als Job in der Queue. Beim Logout wird das Token gelöscht. Für Unternehmen in Deutschland wichtig: Benachrichtigungstexte erscheinen auf dem Sperrbildschirm. Personenbezogene Details wie Kundennamen gehören besser in die App selbst als in die Nachricht.
So unterstützt jocapps
WebViewGold macht aus Ihrer Laravel-Anwendung native iOS- und Android-Apps mit Push, Offline-Modus und mehr als 40 nativen APIs, inklusive Kamera und Datei-Upload – als Einmalkauf. Wenn Sie die Umsetzung abgeben möchten, liefert WeSetupYourWebViewApp store-ready Apps aus URL und Icon innerhalb von 72 Stunden, inklusive Quellcode. Zur Veröffentlichung selbst hilft der Leitfaden App-Store-Veröffentlichung.
Für eine Einschätzung Ihrer Anwendung buchen Sie ein kostenloses 30-minütiges Erstgespräch.
Häufige Fragen
Brauche ich Sanctum oder eine API für die App?
Für einen Wrapper nicht. Er nutzt dieselbe Web-Session wie der Browser. Sanctum wird relevant, wenn ein separater nativer Client gegen eine API arbeitet.
Warum treten 419-Fehler nur in der App auf?
Apps werden nach langen Pausen mit alter Seite und veraltetem CSRF-Token fortgesetzt. Ein Neuladen beim Zurückkehren in den Vordergrund behebt das zuverlässig.
Funktionieren Livewire-Uploads mit der Handykamera?
Ja, sofern der Wrapper Kamera-Berechtigungen und den Dateiauswahldialog nativ umsetzt und die Upload-Limits auf dem Server passen.
Guides zum Thema
Verwandte Lösungen
- Website und Web-App als AppBubble-App im App Store und bei Google Play veröffentlichen
- Website und Web-App als AppDjango-Web-App als Mobile App: Wrapper oder API-first
- Website und Web-App als AppDrupal-Website als App für Hochschulen und Verwaltung
- Website und Web-App als AppJoomla-Website als App für Verein, Schule oder Gemeinde
Sprechen wir über Ihr Projekt
Ehrliche Einschätzung zu Idee, Prototyp oder App.
- 30 Minuten
- Kostenlos
- Unverbindlich
