Saltare alla navigazione

@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 ripristino dell'applicazione. Può anche riavviare il WebView da code nativo dopo un crash, con un intervallo fissato, su un orario programmato o quando JavaScript richiede esplicitamente restartWebView(), che aiuta gli app kiosk, POS, dashboard, scanner e segnali 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 - Ricicla le WebViews di lunga durata con un timer nativo utilizzando restartIntervalMs o un orologio da parete restartCron.
  • Riavvio nativo manuale - Consente a JavaScript di richiedere un WebView nativo fresco con restartWebView() senza eseguire un reload della pagina.
  • Configurato Capacitor a livello di tipo - 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.
addListenerFaccia webViewRestoredAfterCrash o webViewRestoredAfterRestart quando un ascoltatore si attacca e un marker corrispondente è ancora in sospeso.
removeAllListenersRimuove tutti gli ascoltatori dei plugin.

Il plugin integra Capacitor con una configurazione PluginsConfig con un’impostazione di configurazione WebViewCrash tipizzata:

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 riavvii programmati scrivono reason: 'periodicRestart'I riavvii manuali scrivono reason: 'manualRestart'. Salva lo stato non salvato prima di abilitare intervalli di riavvio brevi, orari di pianificazione cron, 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 entrambe le pianificazioni 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 WebView terminato. I riavvi manuali e programmati ricostruiscono la vista del ponte __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 dei media e dell'interfaccia nativa, connettilo con Utilizzando @capgo/capacitor-webview-crash per la capacità nativa in Utilizzando @capgo/capacitor-webview-crash, Utilizzando @capgo/capacitor-live-activities For 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.