Übersicht
Abschnitt: „Übersicht“Abgestürzte WebViews nativ neu starten und laufende WebViews in einem festen Intervall recyceln
Starte mit getPendingCrashInfo() und den anderen unten aufgeführten Core-Methoden.
Plattformunterstützung
Abschnitt mit dem Titel „Plattformunterstützung“| Plattform | Support | Notizen |
|---|---|---|
| iOS | Ja | Native |
| Android | Ja | Native |
| Web | Teilweise | Erste Schritte ansehen |
Kernfunktionen
Abschnitt mit dem Titel „Kernfunktionen“- Native Crash-Neustart – Startet die WebView unter iOS oder Android neu, wenn der Renderer-Prozess abstürzt.
- Geplanter Neustart – Recycelt lang laufende WebViews über einen nativen Timer mittels
restartIntervalMsoder einer UhrzeitrestartCron. - Manueller nativer Neustart – Ermöglicht es JavaScript, eine frische native WebView anzufordern,
restartWebView()ohne einen Page Reload durchzuführen. - Typisierte Capacitor Konfiguration – Bietet
WebViewCrashPluginConfigfürplugins.WebViewCrashincapacitor.config.ts. getPendingCrashInfo- Gibt den gespeicherten Native-Crash- oder Neustart-Marker zurück, odernullwenn nichts aussteht.clearPendingCrashInfo- Löscht den gespeicherten Marker, nachdem die App ihren Zustand wiederhergestellt hat.simulateCrashRecovery- Erstellt einen simulierten Crash-Marker, um Recovery-Flows lokal zu testen.addListener- LöstwebViewRestoredAfterCrashfür Crash-Marker undwebViewRestoredAfterRestartfür jeden Native-Neustart-Marker aus.
Öffentliches API
Abschnitt mit dem Titel „Öffentliche API“| Methode | Beschreibung |
|---|---|
getPendingCrashInfo | Gibt den gespeicherten Native-Crash oder Restart-Marker zurück, oder null wenn nichts ausstehend ist. |
clearPendingCrashInfo | Löscht den gespeicherten Marker, nachdem die App ihren Zustand wiederhergestellt hat. |
simulateCrashRecovery | Erstellt einen simulierten Crash-Marker, um Recovery-Flows lokal zu testen. |
restartWebView | Schreibt reason: 'manualRestart' und weist das native code an, ein neues WebView zu erstellen. |
addListener | Löst webViewRestoredAfterCrash oder webViewRestoredAfterRestart aus, wenn ein Listener angehängt wird und ein passender Marker noch aussteht. |
removeAllListeners | Entfernt alle Plugin-Listener. |
Config-Typ
Abschnitt „Config Type“Das Plugin erweitert Capacitor um einen PluginsConfig typisierten WebViewCrash Konfigurationseintrag:
export interface WebViewCrashPluginConfig { restartOnCrash?: boolean; restartIntervalMs?: number; restartCron?: string; restartAfterCrashDelayMs?: number;}- Dieses Plugin erkennt die Wiederherstellung nach einem WebView-Crash. Es verhindert den zugrunde liegenden Crash nicht.
- Die wiederhergestellte JavaScript-Runtime ist neu. Daher ist jeder In-Memory-Status des vorherigen WebViews bereits verloren, wenn dieses API ausgelöst wird.
- Geplante Restarts schreiben
reason: 'periodicRestart'; manuelle Restarts schreibenreason: 'manualRestart'. Speichere ungesicherten State, bevor du kurze Restart-Intervalle, Cron-Schedules oderrestartWebView(). restartCronverwendet die 5-Felder-Cron-Syntax in der lokalen Zeitzone des Geräts, zum Beispiel0 3 * * *für einen täglichen Neustart um 03:00 Uhr. Konfiguriere nicht beide Zeitpläne gleichzeitig: Die native Initialisierung wirft einen fatalen Config-Error, wennrestartCrongesetzt ist undrestartIntervalMsgrößer als ist0.- Auf Android können zusätzliche Felder wie
didCrashundrendererPriorityAtExitverfügbar sein. - Auf iOS protokolliert das Plugin
appStatewenn der beendete WebView-Prozess beobachtet wird. Manuelle und geplante Neustarts bauen die Capacitor Bridge-View neu auf, sodass eine neueWKWebViewerstellt wird.
Source of Truth
Abschnitt mit dem Titel „Source of Truth“Diese Referenz wird synchronisiert von src/definitions.ts in capacitor-webview-crash.
Weiterlesen mit @capgo/capacitor-webview-crash
Abschnitt mit dem Titel „Weiterlesen mit @capgo/capacitor-webview-crash“Wenn du es nutzt @capgo/capacitor-webview-crash , um natives Media- und Interface-Verhalten zu planen, verbinde es mit Verwendung von @capgo/capacitor-webview-crash für die native Funktion in Verwendung von @capgo/capacitor-webview-crash, @capgo/capacitor-live-activities verwenden für die native Funktion in „@capgo/capacitor-live-activities verwenden“, @capgo/capacitor-live-activities für die Implementierungsdetails in @capgo/capacitor-live-activities, Verwendung von @capgo/capacitor-video-player für die native Funktion in „@capgo/capacitor-video-player verwenden“, und @capgo/capacitor-video-player für das Implementierungsdetail in @capgo/capacitor-video-player.