Aller directement au contenu

Démarrage

Fenêtre de terminal
bun add @capgo/capacitor-webview-crash
bunx cap sync
import { WebViewCrash } from '@capgo/capacitor-webview-crash';

Attachez l'écouteur aussi tôt que possible dans le démarrage de votre application afin que le runtime récupéré puisse réagir avant que les utilisateurs continuent de naviguer :

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 : Présentation

Résumé de API

Renvoie le marqueur de crash natif stocké, ou null lorsqu'il n'y a rien en attente.

const pending = await WebViewCrash.getPendingCrashInfo();
if (pending.value) {
console.log(pending.value.platform, pending.value.reason);
}

Efface le marqueur de crash stocké après que votre gestion de récupération est terminée.

await WebViewCrash.clearPendingCrashInfo();

Crée un marqueur de crash fictif afin que les équipes QA et de débogage local puissent exercer le chemin de récupération sans faire crasher une vraie WebView.

const simulated = await WebViewCrash.simulateCrashRecovery();
console.log(simulated.value);

Notes de plateforme

Remarques sur la plateforme
  • Android enregistre les métadonnées de crash à partir de onRenderProcessGone, y compris didCrash et rendererPriorityAtExit lorsque la plateforme les fournit.
  • iOS enregistre les métadonnées de crash à partir de webViewWebContentProcessDidTerminate et ajoute l'état actuel de l'application lorsque disponible.
  • La version Web ne détecte pas les crashs de rendu réel. La mise en œuvre Web ne simule que le comportement avec le stockage local.

Référence de type

Remarques sur la plateforme

PendingCrashInfoResult

Référence de type
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';

Cette page est générée à partir du plugin’s src/definitions.tsRe-run the sync when the public API changes upstream.