Einstieg
Einen Setup-Befehl mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin kopieren.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-webview-crash`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/webview-crash/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Installieren
Abschnitt: Installierenbun add @capgo/capacitor-webview-crashbunx cap syncImportieren
Abschnitt: Importierenimport { WebViewCrash } from '@capgo/capacitor-webview-crash';Empfohlener Wiederherstellungsfluss
Abschnitt: Empfohlener WiederherstellungsflussFügen Sie den Listener so früh wie möglich in der App-Startzeit ein, damit das wiederhergestellte Runtime reagieren kann, bevor die Benutzer weiter navigieren:
import { WebViewCrash } from '@capgo/capacitor-webview-crash';
await WebViewCrash.addListener('webViewRestoredAfterCrash', async (info) => { console.log('Recovered after a WebView crash', info);
// Rehydrate critical state, reopen the correct screen, or prompt the user to retry. await WebViewCrash.clearPendingCrashInfo();});
const pending = await WebViewCrash.getPendingCrashInfo();// Note: the listener callback may have already cleared the pending marker.if (pending.value) { console.log('Pending crash marker', pending.value);}API Übersicht
Abschnitt mit dem Titel „API Übersicht“getPendingCrashInfo
Abschnitt mit dem Titel „getPendingCrashInfo“Gibt den gespeicherten nativen Crashmarker zurück, oder null wenn nichts im Vorrat ist.
const pending = await WebViewCrash.getPendingCrashInfo();if (pending.value) { console.log(pending.value.platform, pending.value.reason);}clearPendingCrashInfo
Abschnitt mit dem Titel „clearPendingCrashInfo“Löscht den gespeicherten Crashmarker nach Abschluss Ihrer Wiederherstellungsverarbeitung.
await WebViewCrash.clearPendingCrashInfo();simulateCrashRecovery
Abschnitt mit dem Titel „simulateCrashRecovery“Erstellt einen fiktiven Crashmarker, damit QA und lokale Debugging die Wiederherstellungsroute ohne Absturz eines echten WebView ausüben können.
const simulated = await WebViewCrash.simulateCrashRecovery();console.log(simulated.value);Plattformhinweise
Plattformhinweise- Android speichert Metadaten von Crashten von
onRenderProcessGone, einschließlichdidCrashundrendererPriorityAtExitwenn die Plattform sie bereitstellt. - iOS speichert Metadaten von Crashten von
webViewWebContentProcessDidTerminateund fügt den aktuellen Anwendungsstatus hinzu, wenn verfügbar. - Die Web-Implementierung detektiert keine echten Renderer-Crashten. Die Web-Implementierung simuliert nur das Verhalten mit lokalem Speicher.
Typenverweis
PlattformhinweisePendingCrashInfoResult
Section titled “PendingCrashInfoResult”export interface PendingCrashInfoResult { /** * Stored crash metadata, or `null` when no marker is pending. */ value: WebViewCrashInfo | null;}WebViewCrashInfo
Abschnitt mit dem Titel “WebViewCrashInfo”export interface WebViewCrashInfo { /** * Platform that detected and stored the crash marker. */ platform: WebViewCrashPlatform;
/** * Unix timestamp in milliseconds for when the crash marker was written. */ timestamp: number;
/** * ISO-8601 version of `timestamp`. */ timestampISO: string;
/** * Platform-specific reason for the crash marker. */ reason: WebViewCrashReason;
/** * Last known WebView URL when the crash marker was written. */ url?: string;
/** * Android-only hint from `RenderProcessGoneDetail.didCrash()`. */ didCrash?: boolean;
/** * Android-only renderer priority reported at exit. */ rendererPriorityAtExit?: number;
/** * iOS-only application state captured when the WebView process died. */ appState?: WebViewCrashAppState;}WebViewCrashPlatform
Abschnitt mit dem Titel “WebViewCrashPlatform”export type WebViewCrashPlatform = 'android' | 'ios' | 'web';WebViewCrashReason
Abschnitt mit dem Titel “WebViewCrashReason”export type WebViewCrashReason = 'renderProcessGone' | 'webContentProcessDidTerminate' | 'simulated';WebViewCrashAppState
Abschnitt mit dem Titel “WebViewCrashAppState”export type WebViewCrashAppState = 'active' | 'inactive' | 'background' | 'unknown';Quelle der Wahrheit
Abschnitt mit dem Titel “Quelle der Wahrheit”Diese Seite wurde aus dem Plugin generiert. src/definitions.tsWenn sich die öffentliche API upstream ändert, führen Sie die Synchronisierung erneut durch.