Zum Inhalt springen

@capgo/capacitor-webview-crash

Nativ-WebView-Fehlertreiber, manuelle Neustart und geplante WebView-Wiederverwertung für langlaufende Capacitor-Anwendungen.

Übersicht

Ü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 Wiederherstellung der App 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 anfragt restartWebView(), was Kiosk-, POS-, Dashboard-, Scanner- und Signage-Anwendungen dabei hilft, während langen Sitzungen Speicherabbaubau zu vermeiden.

  • Native Crash-Neustart - Neustart der WebView von iOS oder Android, wenn der Renderer-Prozess abstürzt
  • Geplantes Neustart - Recycelt lange laufende WebViews auf einem nativen Timer mit restartIntervalMs oder einer Uhr restartCron.
  • Manueller nativer Neustart - Lässt JavaScript einen frischen nativen WebView anfordern, ohne eine Seite neu zu laden restartWebView() Typierte __CAPGO_KEEP_0__-Konfiguration - Exponiert
  • Typed Capacitor config - Exposes WebViewCrashPluginConfig in plugins.WebViewCrash - Gibt den gespeicherten nativen Crash- oder Neustartmarker zurück, oder capacitor.config.ts.
  • getPendingCrashInfo wenn nichts im Gange ist. null - Löschet den gespeicherten Marker nachdem Ihre App ihren Zustand wiederhergestellt hat.
  • clearPendingCrashInfo Manual native restart - Lets JavaScript request a fresh native WebView with __CAPGO_KEEP_0__ without doing a page reload.
  • simulateCrashRecovery - Erstellt einen fiktiven Crashmarker, um lokale Recovery-Flows zu testen.
  • addListener - Auslöst webViewRestoredAfterCrash - für Crashmarker und webViewRestoredAfterRestart - für jeden native Restartmarker.
MethodeBeschreibung
getPendingCrashInfoGibt den gespeicherten native Crash- oder Restartmarker 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 nach, ein frisches WebView zu erstellen.
addListenerAuslöst webViewRestoredAfterCrash oder webViewRestoredAfterRestart wenn ein Listener anhängt und ein passender Marker noch ausstehend ist.
removeAllListenersEntfernt alle Plugin-Listener.

Das Plugin ergänzt Capacitor’s PluginsConfig mit einem WebViewCrash typisierten

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.
  • Das wiederhergestellte JavaScript- Runtime ist neu, daher ist der in-Memory-Zustand des vorherigen WebViews bereits verschwunden, wenn dieser API ausgelöst wird.
  • Geplante Neustarts schreiben reason: 'periodicRestart'; manuelle Neustarts schreiben reason: 'manualRestart'. Speichern Sie ungelesene Daten vor der Aktivierung kurzer Neustarts, Cron-Aufträge oder der Aufruf von restartWebView().
  • restartCron verwenden Sie die 5-Felder-Cron-Syntax im Gerätezeitzone, zum Beispiel 0 3 * * * für einen täglichen Neustart um 03:00 Uhr. Konfigurieren Sie nicht beide Schedules gleichzeitig: Die native Initialisierung wirft einen fatalen Konfigurationsfehler, wenn restartCron festgelegt ist und restartIntervalMs größer als ist. 0.
  • Auf Android-Geräten werden zusätzliche Felder wie didCrash und rendererPriorityAtExit möglicherweise verfügbar.
  • Bei iOS wird der Plugin die appState beobachtet. Manuelle und geplante Neustarts bauen die Capacitor-Brückensicht wieder auf, sodass ein neuer WKWebView Quelle der Wahrheit

Sektion mit dem Titel “Quelle der Wahrheit”

Dieser Verweis wird von

innerhalb von src/definitions.ts __CAPGO_KEEP_0__-webview-crash Fortsetzung von @capacitor/__CAPGO_KEEP_1__-webview-crash.

Sektion mit dem Titel “Fortsetzung von @capgo/capacitor-webview-crash”

Section titled “Keep going from @capgo/capacitor-webview-crash”

Wenn Sie diese Funktion verwenden @capgo/capacitor-webview-crash um native Medien und Schnittstellenverhalten zu planen und zu verbinden Verwenden Sie @capgo/capacitor-webview-crash für die native Fähigkeit in Verwendung von @capgo/capacitor-webview-crash Verwenden Sie @capgo/capacitor-live-activities für die native Fähigkeit in Verwendung von @capgo/capacitor-live-activities @capgo/capacitor-live-activities für die Implementierungsdetails in @capgo/capacitor-live-activities Verwenden Sie @capgo/capacitor-video-player für die native Fähigkeit in Verwendung von @capgo/capacitor-video-player und @capgo/capacitor-video-player {"targetLanguage":"German","pagePath":"/de/docs/plugins/webview-crash/","protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"items":[{"text":"für die Implementierungsdetails in @capgo/capacitor-Video-Player."},{"text":"Seite bearbeiten"}]}