Passer à la navigation

@capgo/capacitor-webview-crash

La récupération de 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 stocke un marqueur natif lorsque le processus Capacitor WebView précédent meurt ou est recyclé, puis expose ensuite ce marqueur au runtime JavaScript suivant après le redémarrage de l'application. Il peut également redémarrer le WebView à partir du natif code après une panne, à intervalles fixes, selon un horaire planifié ou lorsque JavaScript le demande explicitement 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 restartIntervalMs ou d'une horloge murale restartCron.
  • Redémarrage natif manuel - Permet à JavaScript de demander un WebView natif frais sans recharger la page. restartWebView() Configuration __CAPGO_KEEP_0__ typée - Expose
  • Typed Capacitor config - Exposes WebViewCrashPluginConfig en plugins.WebViewCrash Core Capabilities capacitor.config.ts.
  • getPendingCrashInfo - Récupère le marqueur de crash ou de redémarrage natif stocké, ou null lorsqu'il n'y a rien en attente.
  • clearPendingCrashInfo - Efface le marqueur stocké après que votre application ait restauré son état.
  • simulateCrashRecovery - Crée un marqueur de crash fictif afin de tester les flux de récupération localement.
  • addListener - Déclenche webViewRestoredAfterCrash pour les marqueurs de crash et webViewRestoredAfterRestart pour tout marqueur de redémarrage natif.
MéthodeDescription
getPendingCrashInfoRécupère le marqueur de crash ou de redémarrage natif stocké, ou null lorsque rien n'est 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 nouvelle fenêtre WebView.
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 avec un paramètre de configuration : WebViewCrash Copier dans le presse-papier

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • Le runtime JavaScript récupéré est nouveau, donc tout l'état en mémoire de la vue Web précédente est déjà perdu lorsque cet événement __CAPGO_KEEP_0__ se déclenche.
  • The recovered JavaScript runtime is new, so any in-memory state from the previous WebView is already gone when this API fires.
  • ; redémarrage manuel écrit reason: 'periodicRestart'Sauvegardez l'état non enregistré avant d'activer des intervalles de redémarrage courts, des plans horaires ou des appels reason: 'manualRestart'utilise la syntaxe de 5 champs de plan horaire sur le dispositif dans la zone horaire locale, par exemple restartWebView().
  • restartCron 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 0 3 * * * 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 tels que 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 planifiés reconstruisent la vue de pont Capacitor pour créer un nouveau WKWebView est créé.

Cette référence est synchronisée à partir de 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 natif pour le détail d'implémentation dans @capgo/capacitor-player vidéo natif.