Zum Inhalt springen

@capgo/capacitor-webview-crash

Native WebView Crash Recovery, manueller Neustart und geplante WebView-Wiederherstellung für langlaufende Capacitor-Apps.

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.

  • 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 restartIntervalMs oder einem Uhrzeigerschalter restartCron.
  • Manueller nativer Neustart - Lassen Sie JavaScript einen frischen nativen WebView mit restartWebView() ohne eine Seitenaktualisierung anfordern.
  • Typet Capacitor Konfiguration - Expose WebViewCrashPluginConfig für plugins.WebViewCrash in capacitor.config.ts.
  • getPendingCrashInfo - Gibt den gespeicherten nativen Crash- oder Neustartmarker zurück, oder null wenn 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öst webViewRestoredAfterCrash für Crashmarker und webViewRestoredAfterRestart für jeden nativen Neustartmarker.
MethodeBeschreibung
getPendingCrashInfoGibt das gespeicherte native Crash- oder Neustartmarker zurück, oder null wenn nichts ansteht.
clearPendingCrashInfoLöscht den gespeicherten Marker nachdem Ihre App ihren Zustand wiederhergestellt hat.
simulateCrashRecoveryErstellt einen fiktiven Crashmarker, um lokale Recovery-Flows zu testen.
restartWebViewSchreibt reason: 'manualRestart' und fragt native code an, um eine frische WebView zu erstellen.
addListenerAuslöst webViewRestoredAfterCrash oder webViewRestoredAfterRestart wenn ein Listener anhängt und ein passender Marker noch ansteht.
removeAllListenersLöscht alle Plugin-Listener.

Der 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 schreiben reason: 'manualRestart'. Persistieren Sie nicht gespeicherte Zustände, bevor Sie kurze Neustartintervalle, Cron-Aufträge oder Aufrufe aktivieren restartWebView().
  • restartCron verwendet 5-Felder-Cron-Syntax in der Gerätezeitzone, zum Beispiel 0 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 von restartCron und restartIntervalMs eine fatale Konfigurationsfehlermeldung aus, wenn 0.
  • größer als didCrash Auf Android stehen zusätzliche Felder wie rendererPriorityAtExit und
  • zur Verfügung. appState when the terminated WebView process is observed. Manual and scheduled restarts rebuild the Capacitor bridge view so a new WKWebView aufgezeichnet, 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 Wahrheit

Diese Referenz wird von src/definitions.ts in 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