Übersicht
Abschnitt mit dem Titel „Übersicht“Dieses Plugin legt bei einem Tod oder Recycling des vorherigen Capacitor WebView-Prozesses einen nativen Marker ab und macht diesen Marker dann nach dem App-Wiederherstellen für das nächste JavaScript-Runtime verfügbar. Es kann auch den WebView von native code nach einem Crash, auf einem festen Intervall, auf einem Cron-Schema oder wenn JavaScript explizit anfragt, neu starten. restartWebView()Dies hilft Kiosk-, POS-, Dashboard-, Scanner- und Signage-Apps, sich vor einer Speicheranreicherung während langen Sitzungen zu schützen.
Hauptfunktionen
Abschnitt mit dem Titel „Hauptfunktionen“- Native Crash-Neustart - Der WebView wird von iOS oder Android neu gestartet, wenn der Renderer-Prozess stirbt.
- Geplante Neustart - Recycelt lange laufende WebViews auf einem nativen Timer mit
restartIntervalMsoder einem UhrzeigerschalterrestartCron. - Manueller nativer Neustart - Lässt JavaScript einen frischen nativen WebView mit
restartWebView()ohne eine Seite neu zu laden. - Typische Capacitor-Konfiguration - Exponiert
WebViewCrashPluginConfigfürplugins.WebViewCrashincapacitor.config.ts. getPendingCrashInfo- Gibt die gespeicherte native Crash- oder Neustartmarke zurück, odernullwenn nichts im Gange ist.clearPendingCrashInfo- Löschet die gespeicherte Marke nachdem Ihre App ihren Zustand wiederhergestellt hat.simulateCrashRecovery- Erstellt eine fiktive Crashmarke, damit Recovery-Flows lokal getestet werden können.addListener- AuslöstwebViewRestoredAfterCrashfür Crashmarker undwebViewRestoredAfterRestartfür jeden native Restartmarker.
Öffentliches API
Abschnitt mit dem Titel “Öffentliches API”| Methode | Beschreibung |
|---|---|
getPendingCrashInfo | Gibt den gespeicherten native Crash- oder Restartmarker zurück, oder null wenn nichts ansteht. |
clearPendingCrashInfo | Löscht den gespeicherten Marker nachdem sich Ihre App wieder in ihren Zustand zurückgesetzt hat. |
simulateCrashRecovery | Erstellt einen fiktiven Crashmarker, damit Recovery-Flows lokal getestet werden können. |
restartWebView | Schreibt reason: 'manualRestart' und fragt native code an, um eine frische WebView zu erstellen. |
addListener | Feuern webViewRestoredAfterCrash oder webViewRestoredAfterRestart wenn ein Hörer anhängt und ein passender Marker noch ausstehend ist. |
removeAllListeners | Entfernt alle Plugin-Hörer. |
Konfigurationstyp
Abschnitt mit dem Titel „Konfigurationstyp“Das Plugin ergänzt Capacitor’s PluginsConfig mit einem WebViewCrash typisierten
export interface WebViewCrashPluginConfig { restartOnCrash?: boolean; restartIntervalMs?: number; restartCron?: string; restartAfterCrashDelayMs?: number;}Zwischenablage kopieren
Hinweise zu den Konfigurationen- Dieses Plugin erkennt eine Wiederherstellung nach einem WebView-Crash. Es verhindert jedoch nicht den zugrunde liegenden Crash.
- Das wiederhergestellte JavaScript- Runtime ist neu, daher ist jeder in-Memory-Zustand vom vorherigen WebView bereits weg, wenn dieser API ausgelöst wird.
- Geplante Neustarts schreiben
reason: 'periodicRestart'Manuelle Neustarts schreibenreason: 'manualRestart'Speichere ungelesene Daten, bevor du kurze Neustarts, Cron-Aufträge oderrestartWebView(). restartCronverwendest, der 5-Felder-Cron-Syntax in der Geräte-Lokalzeitzone, zum Beispiel0 3 * * *für einen täglichen Neustart um 03:00 Uhr. Konfiguriere nicht beide Schedules gleichzeitig: Die native Initialisierung wirft einen fatalen Konfigurationsfehler, wennrestartCroneingesetzt ist undrestartIntervalMsgrößer als0.- Auf Android sind zusätzliche Felder wie
didCrashundrendererPriorityAtExitverfü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”Wenn Sie @capgo/capacitor-webview-crash um native Medien- und Schnittstellenverhalten zu planen, mit ihm zu verbinden Mit @capgo/capacitor-webview-crash für die native Fähigkeit in Mit @capgo/capacitor-webview-crash, Mit @capgo/capacitor-live-activities für die native Fähigkeit in Mit @capgo/capacitor-live-activities, @capgo/capacitor-live-activities für die Implementierungsdetails in @capgo/capacitor-live-activities, Mit @capgo/capacitor-video-player für die native Fähigkeit in Mit @capgo/capacitor-video-player, und @capgo/capacitor-video-player für die Implementierungsdetails in @capgo/capacitor-video-player.