Reinicia WebViews caídos de forma nativa y recicla WebViews de larga duración a intervalos fijos
Empieza con getPendingCrashInfo() y los demás métodos principales detallados abajo.
Soporte de plataformas
Sección titulada “Soporte de plataformas”| Plataforma | Soporte | Notas |
|---|---|---|
| iOS | Sí | Nativo |
| Android | Sí | Nativo |
| Web | Parcial | Ver inicio rápido |
Funcionalidades principales
Sección titulada “Funcionalidades principales”- Reinicio por crash nativo - Reinicia el WebView en iOS o Android cuando el proceso del renderer muere.
- Reinicio programado - Recicla WebViews de larga ejecución mediante un temporizador nativo usando
restartIntervalMso un reloj de paredrestartCron. - Reinicio nativo manual - Permite que JavaScript solicite un nuevo WebView nativo con
restartWebView()sin necesidad de recargar la página. - Configuración de Capacitor tipada - Expone
WebViewCrashPluginConfigparaplugins.WebViewCrashencapacitor.config.ts. getPendingCrashInfo- Devuelve el crash nativo o el marcador de reinicio guardado, onullcuando no hay nada pendiente.clearPendingCrashInfo- Borra el marcador guardado una vez que la app haya restaurado su estado.simulateCrashRecovery- Crea un marcador de crash falso para probar los flujos de recuperación localmente.addListener- DisparawebViewRestoredAfterCrashpara marcadores de crash ywebViewRestoredAfterRestartpara cualquier marcador de reinicio nativo.
Público API
Sección titulada “Público API”| Método | Descripción |
|---|---|
getPendingCrashInfo | Devuelve el marcador almacenado de crash nativo o reinicio, o null cuando no hay nada pendiente. |
clearPendingCrashInfo | Borra el marcador almacenado después de que tu app haya restaurado su estado. |
simulateCrashRecovery | Crea un marcador de crash falso para probar los flujos de recuperación en local. |
restartWebView | Escribe reason: 'manualRestart' y pide al code nativo que cree un WebView nuevo. |
addListener | Se dispara webViewRestoredAfterCrash o webViewRestoredAfterRestart cuando se adjunta un listener y aún hay un marcador correspondiente pendiente. |
removeAllListeners | Elimina todos los listeners del plugin. |
Config Type
Sección titulada “Config Type”El plugin añade a Capacitor PluginsConfig una entrada de WebViewCrash configuración tipada:
export interface WebViewCrashPluginConfig { restartOnCrash?: boolean; restartIntervalMs?: number; restartCron?: string; restartAfterCrashDelayMs?: number;}- Este plugin detecta la recuperación tras un crash de la WebView. No evita el crash subyacente.
- El runtime de JavaScript recuperado es nuevo, por lo que cualquier estado en memoria de la WebView anterior habrá desaparecido cuando se dispare este API.
- Los reinicios programados escriben
reason: 'periodicRestart'; los reinicios manuales escribenreason: 'manualRestart'. Guarda el estado no guardado antes de activar intervalos de reinicio cortos, cron schedules o llamar arestartWebView(). restartCronusa la sintaxis cron de 5 campos en la zona horaria local del dispositivo, por ejemplo0 3 * * *para un reinicio diario a las 03:00. No configures ambos horarios a la vez: la inicialización nativa lanza un error fatal de configuración cuandorestartCronestá configurado yrestartIntervalMses mayor que0.- En Android, podrían estar disponibles campos adicionales como
didCrashyrendererPriorityAtExitpodría estar disponible. - En iOS, el plugin registra
appStatecuando se detecta el cierre del proceso WebView. Los reinicios manuales o programados reconstruyen la vista del bridge de Capacitor para que una nuevaWKWebViewse crea.
Fuente de verdad
Sección titulada “Fuente de verdad”Esta referencia se sincroniza desde src/definitions.ts en capacitor-webview-crash.
Continuar con @capgo/capacitor-webview-crash
Sección titulada “Continuar con @capgo/capacitor-webview-crash”Si estás usando @capgo/capacitor-webview-crash para planificar el comportamiento de los medios nativos y la interfaz, conéctalo con Uso de @capgo/capacitor-webview-crash para la capacidad nativa en Uso de @capgo/capacitor-webview-crash, Uso de @capgo/capacitor-live-activities para la capacidad nativa en Uso de @capgo/capacitor-live-activities, @capgo/capacitor-live-activities para los detalles de implementación en @capgo/capacitor-live-activities, Uso de @capgo/capacitor-video-player para la capacidad nativa en Uso de @capgo/capacitor-video-player, y @capgo/capacitor-video-player para el detalle de implementación en @capgo/capacitor-video-player.