Inizia con Capgo
Copia una riga di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
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.
Installa
Sezione intitolata “Installa”bun add @capgo/capacitor-webview-crashbunx cap syncImporta
Sezione intitolata “Importa”import { WebViewCrash } from '@capgo/capacitor-webview-crash';Flusso di recupero consigliato
Sezione intitolata “Flusso di recupero consigliato”Aggiungi l'ascoltatore il prima possibile durante l'avvio dell'applicazione, in modo che il runtime recuperato possa reagire prima che gli utenti continuino a navigare:
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 overview
Sezione intitolata “API overview”getPendingCrashInfo
Sezione intitolata “getPendingCrashInfo”Restituisce il marker di crash nativo memorizzato, o null quando non c'è nulla in sospeso.
const pending = await WebViewCrash.getPendingCrashInfo();if (pending.value) { console.log(pending.value.platform, pending.value.reason);}clearPendingCrashInfo
Sezione intitolata “clearPendingCrashInfo”Cancella il marker di crash memorizzato dopo che il tuo trattamento di recupero è completato.
await WebViewCrash.clearPendingCrashInfo();simulateCrashRecovery
Sezione intitolata “simulateCrashRecovery”Crea un marker di crash falso per consentire a QA e debugging locale di esercitare il percorso di recupero senza far crashare un WebView reale.
const simulated = await WebViewCrash.simulateCrashRecovery();console.log(simulated.value);Nota del sistema operativo
Nota della piattaforma- Android memorizza i metadati degli errori di crash da
onRenderProcessGone, inclusididCrasherendererPriorityAtExitquando la piattaforma li fornisce. - iOS memorizza i metadati degli errori di crash da
webViewWebContentProcessDidTerminatee aggiunge lo stato dell'applicazione corrente quando disponibile. - La web non rileva gli errori di crash del renderer reale. L'implementazione web simula solo il comportamento utilizzando il locale storage.
Riferimento di tipo
Nota della piattaformaPendingCrashInfoResult
Riferimento di tipoexport interface PendingCrashInfoResult { /** * Stored crash metadata, or `null` when no marker is pending. */ value: WebViewCrashInfo | null;}WebViewCrashInfo
Sezione intitolata “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
Sezione intitolata “WebViewCrashPlatform”export type WebViewCrashPlatform = 'android' | 'ios' | 'web';WebViewCrashReason
Sezione intitolata “WebViewCrashReason”export type WebViewCrashReason = 'renderProcessGone' | 'webContentProcessDidTerminate' | 'simulated';WebViewCrashAppState
Sezione intitolata “WebViewCrashAppState”export type WebViewCrashAppState = 'active' | 'inactive' | 'background' | 'unknown';Fonte di Verità
Sezione intitolata “Fonte di Verità”Questa pagina è generata dal plugin. src/definitions.tsRiepiloga la sincronizzazione quando le informazioni pubbliche API cambiano in fase di sviluppo.