Redémarrer nativement les WebViews plantées et recycler les WebViews de longue durée à intervalle fixe
Commencez par getPendingCrashInfo() et les autres méthodes principales listées ci-dessous.
Support des plateformes
Section intitulée « Support des plateformes »| Plateforme | Support | Notes |
|---|---|---|
| iOS | Oui | Natif |
| Android | Oui | Natif |
| Web | Partiel | Voir le guide de démarrage |
Fonctionnalités clés
Section intitulée « Fonctionnalités clés »- Redémarrage après un crash natif - Redémarre la WebView sur iOS ou Android lorsque le processus de rendu s'arrête.
- Redémarrage planifié - Recycle les WebViews actives depuis longtemps via un timer natif utilisant
restartIntervalMsou l'heure systèmerestartCron. - Redémarrage natif manuel - Permet à JavaScript de demander une nouvelle WebView native avec
restartWebView()sans recharger la page. - Config Capacitor typée - Expose
WebViewCrashPluginConfigpourplugins.WebViewCrashdanscapacitor.config.ts. getPendingCrashInfo- Renvoie le marqueur stocké de crash natif ou de redémarrage, ounulllorsque rien n'est en attente.clearPendingCrashInfo- Efface le marqueur stocké une fois que votre application a restauré son état.simulateCrashRecovery- Crée un faux marqueur de crash pour tester les flux de récupération localement.addListener- DéclenchewebViewRestoredAfterCrashpour les marqueurs de crash etwebViewRestoredAfterRestartpour tout marqueur de redémarrage natif.
Public API
Section intitulée « Public API »| Méthode | Description |
|---|---|
getPendingCrashInfo | Renvoie le marqueur de crash natif ou de redémarrage stocké, ou null lorsque rien n'est en attente. |
clearPendingCrashInfo | Efface le marqueur stocké une fois que votre application a restauré son état. |
simulateCrashRecovery | Crée un faux marqueur de crash pour tester les flux de récupération localement. |
restartWebView | Écrit reason: 'manualRestart' et demande au code natif de créer une nouvelle WebView. |
addListener | Déclenche webViewRestoredAfterCrash ou webViewRestoredAfterRestart lorsqu'un écouteur est attaché et qu'un marqueur correspondant est toujours en attente. |
removeAllListeners | Supprime tous les écouteurs du plugin. |
Type de config
Section intitulée « Type de config »Le plugin enrichit Capacitor avec une PluginsConfig entrée de configuration WebViewCrash configuration de l'entrée :
export interface WebViewCrashPluginConfig { restartOnCrash?: boolean; restartIntervalMs?: number; restartCron?: string; restartAfterCrashDelayMs?: number;}- Ce plugin détecte la récupération après un crash de WebView. Il ne prévient pas le crash sous-jacent.
- Le runtime JavaScript récupéré est nouveau ; tout état en mémoire de la WebView précédente est déjà perdu lorsque ce API se déclenche.
- Les redémarrages programmés écrivent
reason: 'periodicRestart'; les redémarrages manuels écriventreason: 'manualRestart'. Persistez l'état non sauvegardé avant d'activer des intervalles de redémarrage courts, des tâches cron ou d'appelerrestartWebView(). restartCronutilise la syntaxe cron à 5 champs dans le fuseau horaire local de l'appareil, par exemple0 3 * * *pour un redémarrage quotidien à 03:00. Ne configurez pas les deux programmes en même temps : l'initialisation native génère une erreur de config fatale quandrestartCronest défini et querestartIntervalMsest supérieur à0.- Sur Android, des champs supplémentaires tels que
didCrashetrendererPriorityAtExitpeuvent être disponibles. - Sur iOS, le plugin enregistre
appStatelorsque le processus WebView terminé est observé. Les redémarrages manuels et programmés reconstruisent la vue du bridge Capacitor afin qu'un nouveauWKWebViewsoit créé.
Source de vérité
Section intitulée « Source de vérité »Cette référence est synchronisée depuis src/definitions.ts dans capacitor-webview-crash.
Continuer avec @capgo/capacitor-webview-crash
Section intitulée « Continuer avec @capgo/capacitor-webview-crash »Si vous utilisez @capgo/capacitor-webview-crash pour planifier le comportement des médias et de l'interface natifs, connectez-l’à Utiliser @capgo/capacitor-webview-crash pour la fonctionnalité native dans Utiliser @capgo/capacitor-webview-crash, Utiliser @capgo/capacitor-live-activities pour la capacité native dans Utiliser @capgo/capacitor-live-activities @capgo/capacitor-live-activities pour le détail d'implémentation dans @capgo/capacitor-live-activities Utiliser @capgo/capacitor-video-player pour la capacité native dans Utiliser @capgo/capacitor-video-player, et @capgo/capacitor-video-player pour le détail d'implémentation dans @capgo/capacitor-video-player.