@capgo/capacitor-webview-crash
Übersicht
ÜbersichtsabschnittDieses Plugin speichert einen nativen Marker, wenn das vorherige Capacitor WebView-Prozess stirbt oder recycelt wird, und offenbart dann diesen Marker nach dem App-Wiederherstellen an die nächste JavaScript-Ausführung. Es kann auch den WebView von native code nach einem Crash, auf einem festen Intervall, auf einem Cron-Schema oder wenn JavaScript explizit anfordert, neu starten. restartWebView(), was Kiosk-, POS-, Dashboard-, Scanner- und Signage-Apps dabei hilft, während langen Sitzungen Speicherbaustellen zu vermeiden.
Kernfunktionen
Abschnitt mit dem Titel “Kernfunktionen”- Natives Crash-Neustarten - Neustart des WebView von iOS oder Android, wenn der Renderer-Prozess stirbt.
- Geplantes Neustarten - Recycelt lange laufende WebViews auf einem nativen Timer mit
restartIntervalMsoder einer Uhrzeitanzeige.restartCron. - Manuelles natives Neustarten - Lassen Sie JavaScript eine frische native WebView mit
restartWebView()ohne eine Seite neu zu laden. - Typische Capacitor Konfiguration - Offenbart
WebViewCrashPluginConfigfürplugins.WebViewCrashincapacitor.config.ts. getPendingCrashInfo- Gibt den gespeicherten nativen Crash- oder Neustartmarker zurück, odernull- Löschet den gespeicherten Marker nachdem Ihre App ihren Zustand wiederhergestellt hat.clearPendingCrashInfo- Erstellt einen fiktiven Crash-Marker, damit Recovery-Flows lokal getestet werden können.simulateCrashRecovery- AusgelöstaddListenerfür Crash-Marker undwebViewRestoredAfterCrashfür jeden nativen Neustart-Marker.webViewRestoredAfterRestartÖffentlich __CAPGO_KEEP_0__
Überschrift “Öffentlich API”
Section titled “Public API”| Beschreibung | Gibt den gespeicherten nativen Crash- oder Neustartmarker zurück, oder |
|---|---|
getPendingCrashInfo | Public __CAPGO_KEEP_0__ null wenn nichts anhängig ist. |
clearPendingCrashInfo | Löscht den gespeicherten Marker, nachdem sich die App wieder in ihren Zustand zurückgesetzt hat. |
simulateCrashRecovery | Erstellt einen fiktiven Crash-Marker, damit Recovery-Flows lokal getestet werden können. |
restartWebView | Schreibt reason: 'manualRestart' und fragt den native code an, um eine frische WebView zu erstellen. |
addListener | Auslöst webViewRestoredAfterCrash oder webViewRestoredAfterRestart wenn ein Listener anhängt und ein passender Marker noch anhängig ist. |
removeAllListeners | Entfernt alle Plugin-Listener. |
Konfigurationstyp
Abschnitt mit dem Titel “Konfigurationstyp”Der Plugin erweitert Capacitor’s PluginsConfig mit einem getippten 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 nicht den zugrunde liegenden Crash.
- Der wiederhergestellte JavaScript-Interpreter ist neu, sodass jeder in-Memory-Zustand vom vorherigen WebView bereits weg ist, wenn dieser API ausgelöst wird.
- Geplante Neustarts schreiben
reason: 'periodicRestart'; manuelle Neustarts schreibenreason: 'manualRestart'. Speichern Sie den ungelesenen Zustand vor der Aktivierung kurzer Neustarts, Cron-Aufträge oder AufruferestartWebView(). restartCronverwendet 5-Felder-Cron-Syntax im Geräte-Local-Zeitzone, 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, wennrestartCronwird gesetzt undrestartIntervalMsist größer als0.- Auf Android stehen zusätzliche Felder wie
didCrashundrendererPriorityAtExitmöglicherweise verfügbar. - Auf iOS wird das Plugin auf
appStatewenn das beendete WebView-Prozess beobachtet wird. Manuelle und geplante Neustarts bauen den Capacitor-Brückenansicht neu, so dass eine neueWKWebViewerzeugt wird.
Quelle der Wahrheit
Abschnitt mit dem Titel “Quelle der Wahrheit”Diese Referenz wird von src/definitions.ts in capacitor-webview-crash.
Weitermachen von @capgo/capacitor-webview-crash
Abschnitt mit dem Titel “Weitermachen von @capgo/capacitor-webview-crash”Wenn Sie native Medien- und Schnittstellenverhalten planen, @capgo/capacitor-webview-crash mit @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-crash verbinden Verwenden Sie @capgo/capacitor-webview-crash für die native Fähigkeit in Verwenden Sie @capgo/capacitor-webview-crash Verwenden Sie @capgo/capacitor-live-activities für die native Fähigkeit in Verwenden Sie @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.