Saltare al contenuto

@capgo/capacitor-webview-crash

Recupero di crash del WebView nativo, riavvio manuale e riciclo programmato del WebView per applicazioni Capacitor di lunga durata.

Questo plugin memorizza un marker nativo quando il processo precedente Capacitor WebView muore o viene riciclato, quindi esporre quel marker al prossimo runtime JavaScript dopo il recupero dell'app. Può anche riavviare il WebView da nativo code dopo un crash, con un intervallo fissato, su un orario di programmazione o quando JavaScript richiede esplicitamente restartWebView(), che aiuta gli app kiosk, POS, dashboard, scanner e di segnalazione a evitare l'accumulo di memoria durante le sessioni lunghe.

  • Riavvio del crash nativo - Riavvia il WebView da iOS o Android quando il processo di rendering muore.
  • Riavvio programmato - Recicla i WebViews in esecuzione lunga con un timer nativo utilizzando restartIntervalMs o un orologio da muro restartCron.
  • Riavvio nativo manuale - Consente a JavaScript di richiedere un WebView nativo fresco con restartWebView() senza eseguire un reload della pagina.
  • Configurato Capacitor - Espone WebViewCrashPluginConfig per plugins.WebViewCrash in capacitor.config.ts.
  • getPendingCrashInfo - Restituisce il marker di crash o di 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 localmente i flussi di recupero.
  • addListener - Innescare webViewRestoredAfterCrash per marker di crash e webViewRestoredAfterRestart per qualsiasi marker di riavvio nativo.
MetodoDescrizione
getPendingCrashInfoRestituisce il marker di crash o riavvio nativo memorizzato, o null quando non c'è nulla in sospeso.
clearPendingCrashInfoCancella il marker memorizzato dopo che l'app ha ripristinato lo stato.
simulateCrashRecoveryCrea un marker di crash falso per poter testare i flussi di recupero localmente.
restartWebViewScrive reason: 'manualRestart' e chiede a code nativo di creare un WebView fresco.
addListenerFiring webViewRestoredAfterCrash o webViewRestoredAfterRestart quando un ascoltatore si attacca e un marker di matching è ancora in sospeso.
removeAllListenersRimuove tutti gli ascoltatori dei plugin.

Il plugin integra Capacitor con una configurazione PluginsConfig tipizzata WebViewCrash di ingresso:

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • Questo plugin rileva il recupero dopo un crash del WebView. Non prevene il crash sottostante.
  • Il runtime JavaScript recuperato è nuovo, quindi lo stato in memoria dal WebView precedente è già andato perso quando questo API si attiva.
  • I restart programmati scrivono reason: 'periodicRestart'I restart manuali scrivono reason: 'manualRestart'. Salva lo stato non salvato prima di abilitare intervalli di riavvio brevi, cronogrammi o chiamate restartWebView().
  • restartCron utilizza la sintassi cron a 5 campi nel fuso orario locale del dispositivo, ad esempio 0 3 * * * per un riavvio quotidiano alle 03:00. Non configurare entrambi i cronogrammi contemporaneamente: l'inizializzazione nativa lancia un errore di configurazione fatale quando restartCron è impostato e restartIntervalMs è maggiore di 0.
  • Su Android, possono essere disponibili campi aggiuntivi come didCrash e rendererPriorityAtExit Su iOS, il plugin registra
  • quando si osserva il processo di WebView terminato. I riavvi manuali e programmati ricostruiscono il ponte di visualizzazione __CAPGO_KEEP_0__ quindi viene creata una nuova appState when the terminated WebView process is observed. Manual and scheduled restarts rebuild the Capacitor bridge view so a new WKWebView is created.

Questa riferimento è sincronizzato da src/definitions.ts in capacitor-webview-crash.

Se stai utilizzando @capgo/capacitor-webview-crash per pianificare il comportamento di media e interfaccia nativa, connettilo con Utilizzando @capgo/capacitor-webview-crash per la capacità nativa in Utilizzando @capgo/capacitor-webview-crash, Utilizzando @capgo/capacitor-live-activities per la capacità nativa in Utilizzare @capgo/capacitor-live-attività @capgo/capacitor-live-attività per il dettaglio di implementazione in @capgo/capacitor-live-attività Utilizzare @capgo/capacitor-video-player per la capacità nativa in Utilizzare @capgo/capacitor-video-player, e @capgo/capacitor-video-player per il dettaglio di implementazione in @capgo/capacitor-video-player