@capgo/capacitor-webview-crash
Übersicht
Abschnitt mit dem Titel “Übersicht”Dieses Plugin speichert einen nativen Marker, wenn das vorherige Capacitor WebView-Prozess stirbt oder recycelt wird, und stellt dann diesen Marker der nächsten JavaScript-Ausführung nach der App-Wiederherstellung zur Verfügung. Es kann auch den WebView von native code nach einem Crash, auf einem festen Intervall, auf einem Cron-Schema oder wenn JavaScript explizit anfordert, restartWebView(), was Kiosk-, POS-, Dashboard-, Scanner- und Signage-Apps dabei hilft, während langen Sitzungen Speicherabfall zu vermeiden.
Kernfunktionen
Abschnitt mit dem Titel “Kernfunktionen”- Nativer Crash-Neustart - Neustart des WebView von iOS oder Android, wenn der Renderer-Prozess stirbt.
- Geplantes Neustart - Recycelt lange laufende WebViews auf einem nativen Timer mit
restartIntervalMsoder einem UhrzeigerschalterrestartCron. - Manueller nativer Neustart - Lassen Sie JavaScript einen frischen nativen WebView mit
restartWebView()ohne eine Seitenaktualisierung anfordern. - Typet Capacitor Konfiguration - Expose
WebViewCrashPluginConfigfürplugins.WebViewCrashincapacitor.config.ts. getPendingCrashInfo- Gibt den gespeicherten nativen Crash- oder Neustartmarker zurück, odernullwenn nichts ansteht.clearPendingCrashInfo- Löschet den gespeicherten Marker 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 nativen Neustartmarker.
Öffentliche API
Abschnitt mit dem Titel “Öffentliche API”| Methode | Beschreibung |
|---|---|
getPendingCrashInfo | Gibt das gespeicherte native Crash- oder Neustartmarker zurück, oder null wenn nichts ansteht. |
clearPendingCrashInfo | Löscht den gespeicherten Marker nachdem Ihre App ihren Zustand wiederhergestellt hat. |
simulateCrashRecovery | Erstellt einen fiktiven Crashmarker, um lokale Recovery-Flows zu testen. |
restartWebView | Schreibt reason: 'manualRestart' und fragt 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 ansteht. |
removeAllListeners | Löscht alle Plugin-Listener. |
Konfigurationstyp
Abschnitt: KonfigurationstypDer Plugin erweitert Capacitor’s PluginsConfig mit einer WebViewCrash typisierten
export interface WebViewCrashPluginConfig { restartOnCrash?: boolean; restartIntervalMs?: number; restartCron?: string; restartAfterCrashDelayMs?: number;}Auf die Zwischenablage kopieren
Hinweise- Abschnitt: Hinweise
- The recovered JavaScript runtime is new, so any in-memory state from the previous WebView is already gone when this API fires.
- Der wiederhergestellte JavaScript-Interpreter ist neu, daher ist der in-Memory-Zustand vom vorherigen WebView bereits weg, wenn dieser __CAPGO_KEEP_0__ abläuft.
reason: 'periodicRestart'Geplante Neustarts schreibenreason: 'manualRestart'. Persistieren Sie nicht gespeicherte Zustände, bevor Sie kurze Neustartintervalle, Cron-Aufträge oder Aufrufe aktivierenrestartWebView(). restartCronverwendet 5-Felder-Cron-Syntax in der Gerätezeitzone, zum Beispiel0 3 * * *für einen täglichen Neustart um 03:00 Uhr. Konfigurieren Sie nicht beide Aufträge gleichzeitig: Die native Initialisierung wirft bei einer Einstellung vonrestartCronundrestartIntervalMseine fatale Konfigurationsfehlermeldung aus, wenn0.- größer als
didCrashAuf Android stehen zusätzliche Felder wierendererPriorityAtExitund - zur Verfügung.
appStatewhen the terminated WebView process is observed. Manual and scheduled restarts rebuild the Capacitor bridge view so a newWKWebViewaufgezeichnet, wenn das beendete WebView-Prozess beobachtet wird. Manuelle und geplante Neustarts bauen die __CAPGO_KEEP_0__-Brückensicht so neu, dass ein neuer
erstellt wird.
Quelle der WahrheitDiese 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 native Medien und Schnittstellenverhalten planen, verbinden Sie es mit @capgo/capacitor-webview-crash für die native Fähigkeit in Using @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-crash Using @capgo/capacitor-webview-crash für die native Fähigkeit in Using @capgo/capacitor-webview-crash Using @capgo/capacitor-live-activities für die native Fähigkeit in @capgo/capacitor-live-aktivitäten @capgo/capacitor-live-aktivitäten für die Implementierungsdetail in @capgo/capacitor-live-aktivitäten 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 Implementierungsdetail in @capgo/capacitor-video-player