Vai alla navigazione

Inizia con Capgo

Finestra del terminale
bun add @capgo/capacitor-webview-crash
bunx cap sync
import { WebViewCrash } from '@capgo/capacitor-webview-crash';

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);
}

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);
}

Cancella il marker di crash memorizzato dopo che il tuo trattamento di recupero è completato.

await WebViewCrash.clearPendingCrashInfo();

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, inclusi didCrash e rendererPriorityAtExit quando la piattaforma li fornisce.
  • iOS memorizza i metadati degli errori di crash da webViewWebContentProcessDidTerminate e 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 piattaforma

PendingCrashInfoResult

Riferimento di tipo
export interface PendingCrashInfoResult {
/**
* Stored crash metadata, or `null` when no marker is pending.
*/
value: WebViewCrashInfo | null;
}
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;
}
export type WebViewCrashPlatform = 'android' | 'ios' | 'web';
export type WebViewCrashReason = 'renderProcessGone' | 'webContentProcessDidTerminate' | 'simulated';
export type WebViewCrashAppState = 'active' | 'inactive' | 'background' | 'unknown';

Questa pagina è generata dal plugin. src/definitions.tsRiepiloga la sincronizzazione quando le informazioni pubbliche API cambiano in fase di sviluppo.