Vai alla sezione principale
Torna ai plugin
@capgo/capacitor-webview-crash
Tutorial
@capgo/capacitor-webview-crash

WebView Crash

Riavvia le viste Web che si sono bloccate nativamente e ricicla le viste Web che durano a lungo con un intervallo fissato

Guida

Tutorial sulla Crisi della Vista Web

Utilizza @capgo/capacitor-crisi-webview

Rileva le crisi di recupero della vista Web, riavvia le viste Web morte nativamente e ricicla le viste Web che durano a lungo con un intervallo fissato prima che la pressione di memoria si trasformi in un OOM.

Installa

npm install @capgo/capacitor-webview-crash
npx cap sync

Cosa Questo Plugin Espone

  • Riavvio nativo dopo che la WebView si è bloccata su iOS e Android.
  • Riavvio nativo a intervalli fissi per le app kiosk, POS, segnali, scanner e dashboard che funzionano per giorni.
  • restartWebView - Lascia che JavaScript richieda una WebView nativa fresca senza fare un reload della pagina.
  • WebViewCrashPluginConfig - Tipi plugins.WebViewCrash opzioni in capacitor.config.ts.
  • getPendingCrashInfo - Restituisce il marker di crash o riavvio nativo memorizzato, o null quando non c'è nulla in sospeso.
  • clearPendingCrashInfo - Cancella il marker memorizzato dopo che il tuo app ha ripristinato lo stato.
  • simulateCrashRecovery - Crea un marker di crash falso per poter testare i flussi di recupero localmente.
  • webViewRestoredAfterCrash - Evento ascoltato quando un marker di crash è ancora in sospeso nella runtime ripristinata.
  • webViewRestoredAfterRestart - L'evento di ascolto viene attivato quando qualsiasi marker di riavvio nativo è ancora in attesa.

Esempio di utilizzo

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

Riavvio Auto Nativo

Configura il comportamento di riavvio in capacitor.config.ts in modo che continui a funzionare quando non è disponibile JavaScript:

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;

I riavii programmati scrivono reason: 'periodicRestart'. Utilizza restartIntervalMs per intervalli fissi o restartCron per un orario cron in 5 campi nella zona oraria del dispositivo, ad esempio 0 3 * * * per un riavvio quotidiano alle 03:00. Non configurare entrambi gli orari contemporaneamente: l'inizializzazione nativa lancia un errore di configurazione fatale quando restartCron è impostato e restartIntervalMs è maggiore di 0. Conserva lo stato critico dell'app prima di utilizzare gli orari brevi.

Riavvia nativo manuale

Chiamare restartWebView() quando JavaScript decide di sostituire proattivamente il WebView nativo, ad esempio dopo un flusso di lavoro pesante per la memoria:

await WebViewCrash.restartWebView();

Il metodo scrive reason: 'manualRestart' e chiede al nativo code di creare un WebView fresco. L'Android ricrea l'attività host. L'iOS ricostruisce il ponte di visualizzazione Capacitor in modo che venga creata una nuova WKWebView invece di caricare nuovamente la pagina corrente.

Riferimento completo

Prosegui dall'uso di @capgo/capacitor-webview-crash

Se stai utilizzando Utilizzando @capgo/capacitor-webview-crash per pianificare il comportamento dei media e dell'interfaccia nativi, connettilo con @capgo/capacitor-webview-crash per i dettagli di implementazione in @capgo/capacitor-webview-crash, Avvio Guidato per i dettagli di implementazione in Avvio Guidato, Utilizzando @capgo/capacitor-live-activities per la capacità nativa in Utilizzando @capgo/capacitor-live-activities, @capgo/capacitor-live-activities per i dettagli di implementazione in @capgo/capacitor-live-activities, e Utilizzando @capgo/capacitor-video-player per la capacità nativa in Utilizza @capgo/capacitor-player video.