Saltar al contenido principal
@capgo/capacitor-crash de WebView Autenticación y seguridad Fuente abierta

Crash de WebView plugin de Capacitor

Reiniciar WebViews quebrados nativamente y reciclar WebViews largamente ejecutados en intervalos fijos

Instalar

bun add @capgo/capacitor-webview-crash bunx cap sync
npm, pnpm o yarn
  • npm install @capgo/capacitor-webview-crash
  • pnpm add @capgo/capacitor-webview-crash
  • yarn add @capgo/capacitor-webview-crash

Guía

Cómo usar WebView Crash en Capacitor

Probar en dispositivo

Descargue la aplicación Capgo, luego escane el código QR code.

Vista previa del plugin de WebView Crash code

Usando @capgo/capacitor-webview-crash

Detectar crash de WebView recuperado, reiniciar WebViews muertos 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é Este Plugin Exposa?

  • Reiniciar nativamente después de crash de WebView en iOS y Android.
  • Reinicio periódico nativo de WebView para aplicaciones de kiosco, POS, señalización, escáner y panel de control 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 Elimina el marcador almacenado después de que tu aplicación haya restaurado su estado.
  • simulateCrashRecovery - Elimina el marcador almacenado después de que tu aplicación haya restaurado su estado.
  • webViewRestoredAfterCrash - Crea un marcador de crash falso para que los flujos de recuperación puedan ser probados localmente.
  • webViewRestoredAfterRestart - Se dispara este evento de escucha cuando cualquier marcador de reinicio nativo sigue pendiente.

Uso de Ejemplos

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);
}

- Ejemplo de uso

- Reinicio automático nativo capacitor.config.ts Así sigue 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;

Reinicios programados escriben reason: 'periodicRestart' Utilice restartIntervalMs para intervalos fijos o restartCron para un cron de 5 campos en la zona horaria local del dispositivo, como 0 3 * * * No configure ambos horarios a la vez: la inicialización nativa lanza un error de configuración fatal cuando restartCron está configurado y restartIntervalMs es mayor que 0Persiste el estado de la aplicación crítico antes de usar horarios cortos.

Reinicio Nativo Manual

Llame 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:

await WebViewCrash.restartWebView();

El método escribe reason: 'manualRestart' y solicita a code nativo que cree una WebView fresca. Android recrea la actividad de host. iOS reconstruye la vista de puente Capacitor para un nuevo WKWebView en lugar de recargar la página actual

Referencia completa

Sigue adelante desde Usando @capgo/capacitor-webview-crash

Si estás utilizando Usando @capgo/capacitor-webview-crash para planificar el comportamiento de medios y interfaz nativos, conecta con @capgo/capacitor-crash-de-ventana-web para obtener detalles de implementación en @capgo/capacitor-webview-crash Configuración Inicial para los detalles de implementación en Configuración Inicial, Usando @capgo/capacitor-actividades-en-vivo para la capacidad nativa en Usando @capgo/capacitor-actividades-en-vivo, @capgo/capacitor-actividades-en-vivo para los detalles de implementación en @capgo/capacitor-actividades-en-vivo, y Usando @capgo/capacitor-reproductor-de-videos para la capacidad nativa en Usando @capgo/capacitor-reproductor-de-videos.

FAQ

Preguntas frecuentes del plugin de WebView Crash

¿Cómo puedo instalar el plugin de WebView Crash en una aplicación Capacitor?

Run "bun add @capgo/capacitor-webview-crash" (or "npm install @capgo/capacitor-webview-crash"), then run "bunx cap sync" so the iOS and Android projects pick up the native code. Import it from "@capgo/capacitor-webview-crash" in your app code.

¿Funciona @capgo/capacitor-webview-crash con React, Vue y Angular?

Yes. WebView Crash is a Capacitor package, so it works with any web framework that runs inside Capacitor, including Ionic, React, Vue, Angular, Svelte and plain JavaScript.

¿Qué versión de Capacitor soporta @capgo/capacitor-webview-crash?

Capgo plugins siguen la versión principal de Capacitor: utilice la versión principal del plugin que coincida con la versión principal de Capacitor (por ejemplo, plugin v8 con Capacitor 8). La tabla de compatibilidad en el README de GitHub lista las versiones mantenidas.

¿Es @capgo/capacitor-webview-crash gratuito y de código abierto?

Sí. El código fuente de code está disponible en GitHub en https://github.com/Cap-go/capacitor-webview-crash/ y el paquete es gratuito para instalar desde npm. Se aceptan informes de errores y solicitudes de extracción.

¿Puedo actualizar code que utiliza WebView Crash sin una revisión de la Tienda?

Instalar o actualizar el plugin cambia el code nativo, por lo que necesita una nueva construcción de la tienda. Después de eso, los cambios de JavaScript, HTML y CSS que llaman al plugin pueden enviar instantáneamente con Capgo actualizaciones en vivo.

Envía cambios de WebView Crash sin esperar la revisión de la aplicación

Una vez que el plugin esté en tu tienda de construcción, Capgo actualizaciones en vivo envían los cambios de JavaScript, HTML y CSS a los usuarios en minutos.

Comience con Capgo