Aller directement au contenu

@capgo/capacitor-webview-crash

La récupération de la panne de WebView native, le redémarrage manuel et la recyclage de WebView planifié pour les applications Capacitor longues en cours d'exécution.

This plugin stores a native marker when the previous Capacitor WebView process dies or is recycled, then exposes that marker to the next JavaScript runtime after the app recovers. It can also restart the WebView from native code after a crash, on a fixed interval, on a cron schedule, or when JavaScript explicitly requests restartWebView()Cela aide les applications kiosque, POS, tableau de bord, scanner et de signalisation à éviter la buildup de mémoire pendant de longues sessions.

  • Redémarrage de panne natif - Redémarre le WebView à partir d'iOS ou d'Android lorsque le processus de rendu meurt.
  • Redémarrage planifié - Recycle les WebViews longs en cours d'exécution à l'aide d'un horloge native ou d'un horloge de mur restartIntervalMs ou restartCron.
  • Redémarrage natif manuel - Permet à JavaScript de demander un WebView natif frais sans faire recharger la page. restartWebView() Configuration __CAPGO_KEEP_0__ typée - Expose les paramètres
  • Typed Capacitor config - Exposes WebViewCrashPluginConfig en plugins.WebViewCrash __CAPGO_KEEP_1__ capacitor.config.ts.
  • getPendingCrashInfo - Renvoie le marqueur de crash ou de redémarrage natif stocké, ou null - Supprime le marqueur stocké après que votre application ait restauré son état.
  • clearPendingCrashInfo - Crée un marqueur de crash fictif pour tester les flux de récupération localement.
  • simulateCrashRecovery - Déclenche
  • addListener pour les marqueurs de crash et webViewRestoredAfterCrash pour tout marqueur de redémarrage natif. webViewRestoredAfterRestart Public __CAPGO_KEEP_0__

Section intitulée “Public API”

Section titled “Public API”
DescriptionRenvoie le marqueur de crash ou de redémarrage natif stocké, ou
getPendingCrashInfoSection titled “Public __CAPGO_KEEP_0__” null lorsqu'il n'y a rien en attente.
clearPendingCrashInfoSupprime le marqueur stocké après que votre application ait restauré son état.
simulateCrashRecoveryCrée un marqueur de panne fictif afin de tester les flux de récupération localement.
restartWebViewÉcrit reason: 'manualRestart' et demande au code natif de créer une WebView fraîche.
addListenerDéclenche webViewRestoredAfterCrash ou webViewRestoredAfterRestart lorsqu'un écouteur s'attache et un marqueur correspondant est toujours en attente.
removeAllListenersSupprime tous les écouteurs de plugin.

Le plugin augmente les fonctionnalités de Capacitor PluginsConfig With un typeur WebViewCrash entrée de configuration :

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • Cette extension détecte la récupération après un crash de WebView. Elle ne prévient pas le crash sous-jacent.
  • Le runtime JavaScript récupéré est nouveau, donc tout l'état en mémoire de la WebView précédente est déjà perdu lorsque cet événement API se déclenche.
  • Redémarrages programmés écrivent reason: 'periodicRestart'; redémarrages manuels écrivent reason: 'manualRestart'. Sauvegardez l'état non enregistré avant d'activer des intervalles de redémarrage courts, des plans horaires ou des appels restartWebView().
  • restartCron utilise la syntaxe de 5 champs pour les plans horaires sur le dispositif dans la zone horaire locale, par exemple 0 3 * * * pour un redémarrage quotidien à 03:00. N'configurez pas les deux plans à la fois : l'initialisation native lance une erreur de configuration mortelle lorsque restartCron est défini et restartIntervalMs est supérieur à 0.
  • Sur Android, d'autres champs comme didCrash et rendererPriorityAtExit peuvent être disponibles.
  • Sur iOS, le plugin enregistre appState lorsque le processus de WebView arrêté est observé. Les redémarrages manuels et programmés reconstruisent la vue de pont Capacitor pour créer un nouveau WKWebView est créé.

Cette référence est synchronisée à partir src/definitions.ts dans capacitor-webview-crash.

Continuez à partir de @capgo/capacitor-webview-crash

Section intitulée « Continuez à partir de @capgo/capacitor-webview-crash »

Si vous utilisez @capgo/capacitor-webview-crash pour planifier le comportement de médias et d'interface natives, connectez-le avec En utilisant @capgo/capacitor-webview-crash pour la capacité native dans En utilisant @capgo/capacitor-webview-crash, En utilisant @capgo/capacitor-live-activities pour la capacité native dans En utilisant @capgo/capacitor-live-activities, @capgo/capacitor-live-activities pour le détail d'implémentation dans @capgo/capacitor-live-activities En utilisant @capgo/capacitor-player vidéo natif pour la capacité native dans En utilisant @capgo/capacitor-player vidéo natif, et @capgo/capacitor-player vidéo pour le détail d'implémentation dans @capgo/capacitor-player vidéo.