Übersicht
Abschnitt mit dem Titel “Übersicht”Diese Erweiterung speichert einen nativen Marker, wenn das vorherige Capacitor WebView-Prozess stirbt oder recycelt wird, und offenbart dann diesen Marker an die nächste JavaScript-Ausführung nach der App-Wiederherstellung. Es kann auch den WebView von native code nach einem Crash, auf einem festen Intervall, auf einem Cron-Schema oder wenn JavaScript explizit anfragt restartWebView()Dadurch können sich Kiosk-, POS-, Dashboard-, Scanner- und Signage-Anwendungen vor Memory-Aufbau während langen Sitzungen schützen.
Kernfunktionen
Kernfunktionen- Natives Crash-Neustart - Neustart der WebView von iOS oder Android, wenn das Renderer-Prozess abstürzt.
- Geplantes Neustart - Recycelt lange laufende WebViews auf einem nativen Timer mit
restartIntervalMsoder einer UhrzeitanzeigerestartCron. - Manueller natives Neustart - Lässt JavaScript einen frischen nativen WebView anfordern mit
restartWebView()ohne eine Seite neu zu laden. - Typierte Capacitor Konfiguration - Exponiert
WebViewCrashPluginConfigfürplugins.WebViewCrashincapacitor.config.ts. getPendingCrashInfo- Gibt die gespeicherte native Crash- oder Neustartmarke zurück, odernullwenn nichts ansteht.clearPendingCrashInfo- Löschte die gespeicherte Marke nachdem Ihre App ihren Zustand wiederhergestellt hat.simulateCrashRecovery- Erstellt einen fiktiven Crashmarker, damit Recovery-Flows lokal getestet werden können.addListener- AuslöstwebViewRestoredAfterCrashfür Crashmarker undwebViewRestoredAfterRestartfür jeden native Restartmarker.
Öffentlich API
Abschnitt mit dem Titel “Öffentlich API”| Methode | Beschreibung |
|---|---|
getPendingCrashInfo | Rückgabetyp: Der gespeicherte native Crash- oder Restartmarker, oder null keinen, wenn nichts ansteht. |
clearPendingCrashInfo | Löscht den gespeicherten Marker, nachdem Ihre App ihren Zustand wiederhergestellt hat. |
simulateCrashRecovery | Erstellt einen fiktiven Crashmarker, damit Recovery-Flows lokal getestet werden können. |
restartWebView | Schreibt und fragt native __CAPGO_KEEP_0__ an, um eine frische WebView zu erstellen. reason: 'manualRestart' and asks native code to create a fresh WebView. |
addListener | oder webViewRestoredAfterCrash wenn ein Listener anhängt und ein passender Marker noch ausstehend ist. webViewRestoredAfterRestart Entfernt alle Plugin-Listener. |
removeAllListeners | Konfigurationstyp |
Abschnitt mit dem Titel „Konfigurationstyp“
Das Plugin ergänzt __CAPGO_KEEP_0__’sThe plugin augments Capacitor’s PluginsConfig typisierten WebViewCrash Konfigurations-Eintrag:
export interface WebViewCrashPluginConfig { restartOnCrash?: boolean; restartIntervalMs?: number; restartCron?: string; restartAfterCrashDelayMs?: number;}- Dieses Plugin erkennt eine Wiederherstellung nach einem WebView-Crash. Es verhindert jedoch keinen zugrunde liegenden Crash.
- Der wiederhergestellte JavaScript-Interpreter ist neu, daher ist der in-Memory-Zustand des vorherigen WebViews bereits weg, wenn dieser API ausgelöst wird.
- Geplante Neustarts schreiben
reason: 'periodicRestart'Manuelle Neustarts schreibenreason: 'manualRestart'. Persistieren Sie ungelesene Daten, bevor Sie kurze Neustartschritte, Cron-Aufträge oder AufruferestartWebView(). restartCronverwenden 5-feldige Cron-Syntax in der Gerätezeitzone, zum Beispiel0 3 * * *für einen täglichen Neustart um 03:00 Uhr. Konfigurieren Sie nicht beide Schedules gleichzeitig: Die native Initialisierung wirft einen fatalen Konfigurationsfehler, wennrestartCroneingesetzt ist undrestartIntervalMsgrößer als0.- Auf Android-Geräten werden zusätzliche Felder wie
didCrashundrendererPriorityAtExitmöglicherweise verfügbar. - Auf iOS wird das Plugin aufgezeichnet,
appStatewenn der beendete WebView-Prozess beobachtet wird. Manuelle und geplante Neustarts bauen die Capacitor-Brückensicht so um, dass ein neuerWKWebViewerzeugt wird.
Quelle der Wahrheit
Abschnitt mit dem Titel “Quelle der Wahrheit”Diese Referenz wird von src/definitions.ts in capacitor-webview-crash.
Weitergehen von @capgo/capacitor-webview-crash
Abschnitt mit dem Titel “Weitergehen von @capgo/capacitor-webview-crash”If Sie native Medien und Schnittstellenverhalten planen, verbinden Sie es mit @capgo/capacitor-webview-crash um native Medien und Schnittstellenverhalten zu planen und es mit Verwenden Sie @capgo/capacitor-webview-crash um die native Fähigkeit in Verwenden Sie @capgo/capacitor-webview-crash Verwenden Sie @capgo/capacitor-live-activities um die native Fähigkeit in Verwenden Sie @capgo/capacitor-live-activities @capgo/capacitor-live-activities um die Implementierungsdetails in @capgo/capacitor-live-activities Verwenden Sie @capgo/capacitor-video-player um die native Fähigkeit in Verwenden Sie @capgo/capacitor-video-player und @capgo/capacitor-video-player für die Implementierungsdetails in @capgo/capacitor-Video-Player.