Guía
Tutoriales sobre WebView Crash
Usando @capgo/capacitor-webview-crash
Detectar crash de WebView recuperado, reiniciar WebViews muertas nativamente y reciclar WebViews de larga duración en un intervalo fijo antes de que la presión de memoria se convierta en un OOM.
Instalar
npm install @capgo/capacitor-webview-crash
npx cap sync
¿Qué Exposición de este Plugin?
- Reiniciar nativo después de crash de WebView en iOS y Android.
- Reiniciar nativo de WebView con intervalo fijo para aplicaciones de kiosk, POS, señalización, escáner y tablero que funcionan durante días.
restartWebView- Deja que JavaScript solicite un WebView nativo fresco sin hacer un recarga de página.WebViewCrashPluginConfig- Tiposplugins.WebViewCrashopciones encapacitor.config.ts.getPendingCrashInfo- Devuelve el marcador de crash o reinicio nativo almacenado, onullcuando no hay nada pendiente.clearPendingCrashInfo- Borra el marcador almacenado después de que tu aplicación haya restaurado su estado.simulateCrashRecovery- Crea un marcador de crash ficticio para que los flujos de recuperación puedan ser probados localmente.webViewRestoredAfterCrash- Se dispara el evento de escucha cuando un marcador de crash todavía está pendiente en el tiempo de ejecución recuperado.webViewRestoredAfterRestart- Se dispara el evento de escucha cuando cualquier marcador de reinicio nativo todavía está pendiente.
Ejemplo de uso
import { WebViewCrash } from '@capgo/capacitor-webview-crash';
await WebViewCrash.addListener('webViewRestoredAfterCrash', async (info) => {
console.log('Recovered after a WebView crash', info);
await WebViewCrash.clearPendingCrashInfo();
});
await WebViewCrash.addListener('webViewRestoredAfterRestart', async (info) => {
console.log('Recovered after a native WebView restart', info);
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 or restart marker', pending.value);
}
Reinicio automático nativo
Configure el comportamiento de reinicio en capacitor.config.ts para que siga funcionando cuando JavaScript no esté disponible:
import type { CapacitorConfig } from '@capacitor/cli';
import type { WebViewCrashPluginConfig } from '@capgo/capacitor-webview-crash';
const webViewCrash: WebViewCrashPluginConfig = {
restartOnCrash: true,
restartCron: '0 3 * * *',
restartAfterCrashDelayMs: 0,
};
const config: CapacitorConfig = {
plugins: {
WebViewCrash: webViewCrash,
},
};
export default config;
Los reinicios programados escriben reason: 'periodicRestart'. Utiliza restartIntervalMs para intervalos fijos o restartCron para un cron de 5 campos en la zona horaria local del dispositivo, como 0 3 * * * para un reinicio diario a las 03:00. No configure ambos horarios al mismo tiempo: la inicialización nativa lanza un error de configuración fatal cuando restartCron está configurado y restartIntervalMs es mayor que 0. Persiste el estado de la aplicación crítico antes de usar horarios cortos.
Reiniciar Nativo Manual
Llamar restartWebView() contexto: fragmento de texto HTML de una cadena de Capgo UI más larga (clave de página `appflow_migration_step2`). Página/área: Marketing de comparación/migración de Appflow. Rol: Copia de sitio web. Visto en: página ionic-appflow.astro. Preservar términos de producto/marca y desarrollador de Capgo exactamente. Mensaje clave `appflow_migration_step2` (Paso 2 de la Migración de Appflow).
await WebViewCrash.restartWebView();
cuando JavaScript decide que el WebView nativo debe ser reemplazado de manera proactiva, por ejemplo después de un flujo de trabajo pesado en memoria: reason: 'manualRestart' and asks native code to create a fresh WebView. Android recreates the host activity. iOS rebuilds the Capacitor bridge view so a new WKWebView y pregunta a la __CAPGO_KEEP_0__ nativa que cree un WebView fresco. Android recrea la actividad de host. iOS reconstruye la __CAPGO_KEEP_1__ vista de puente para crear un nuevo
Referencia Completa
- GitHub: https://github.com/Cap-go/capacitor-webview-crash/
- Documentación: /docs/plugins/webview-crash/
Sigue adelante desde Using @capgo/capacitor-webview-crash
Si estás utilizando Using @capgo/capacitor-webview-crash para planificar el comportamiento de medios y interfaz nativa, conecta con @capgo/capacitor-webview-crash para obtener detalles de implementación en @capgo/capacitor-webview-crash Iniciar para obtener detalles de implementación en Iniciar Using @capgo/capacitor-live-activities para la capacidad nativa en Usando @capgo/capacitor-actividades en vivo, @capgo/capacitor-actividades en vivo para el detalle de implementación en @capgo/capacitor-actividades en vivo, y Usando @capgo/capacitor-reproductor de video para la capacidad nativa en Usando @capgo/capacitor-reproductor de video.