Saltar al contenido principal
Volver a plugins
@capgo/capacitor-webview-crash
Tutorial
@capgo/capacitor-webview-crash

WebView Crash

Reinicia los WebViews que se han bloqueado nativamente y recicla los WebViews que duran mucho tiempo con un intervalo fijo

Guía

Tutoriales sobre WebView Crash

Probar en dispositivo

Descargar la aplicación Capgo, luego escanea el código QR code.

Enlace QR de vista previa del plugin de crash de WebView code

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 - Tipos plugins.WebViewCrash opciones en capacitor.config.ts.
  • getPendingCrashInfo - Devuelve el marcador de crash o reinicio nativo almacenado, o null cuando 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

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.