Zum Hauptinhalt springen
@capgo/capacitor-WebView-Crash Auth & Sicherheit Offene Quelle

Webview-Sturz Capacitor-Plugin

Neustart der gestorbenen WebViews nativ und Recycling der langlaufenden WebViews auf einem festen Intervall

Installieren

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

Richtlinie

How Capacitor WebView Crash zu verwenden

Gerät testen

Herunterladen Sie die Capgo-App, dann scannen Sie die QR-code.

Vorschau-code-QR-Link für das WebView Crash-Plugin

@capgo/capacitor-webview-crash verwenden

Erkennen Sie wiederhergestellte WebView-Crashes, starten Sie tote WebViews nativ neu und recyclen Sie lange laufende WebViews auf einem festen Intervall, bevor sich die Speicherdynamik in einen OOM verwandelt.

Installieren

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

Was diese Erweiterung enthüllt

  • Natives Neustart nach WebView-Crashes auf iOS und Android.
  • Festintervall-Neustart des nativen WebViews für Kiosk-, POS-, Signage-, Scanner- und Dashboard-Anwendungen, die Tage laufen.
  • restartWebView - Lassen Sie JavaScript einen frischen nativen WebView anfordern, ohne eine Seite neu zu laden.
  • WebViewCrashPluginConfig Typen plugins.WebViewCrash Optionen in capacitor.config.ts.
  • getPendingCrashInfo - Gibt den gespeicherten native Crash- oder Neustartmarker zurück, oder null wenn nichts anhängt.
  • clearPendingCrashInfo - Löscht den gespeicherten Marker nach Wiederherstellung des Zustands Ihres Apps.
  • simulateCrashRecovery Erstellt einen fiktiven Crash-Marker, um lokale Recovery-Flows zu testen.
  • webViewRestoredAfterCrash Listenerereignis wird ausgelöst, wenn ein Crashmarker im wiederhergestellten Runtime noch nicht abgeschlossen ist.
  • webViewRestoredAfterRestart - Listener Ereignis ausgelöst, wenn jede native Neustartmarke noch ausstehend ist.

Beispielanwendung

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

Native Auto Restart

Konfigurieren Sie das Neustartverhalten in capacitor.config.ts damit es weiterläuft, wenn JavaScript nicht verfügbar ist:

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;

Geplante Neustarts schreiben reason: 'periodicRestart'Verwenden Sie restartIntervalMs für festgelegte Intervalle oder restartCron für ein 5-Felder-Cron-Schema in der Gerätezeitzone, wie z.B. 0 3 * * * für einen täglichen Neustart um 03:00 Uhr. Konfigurieren Sie nicht beide Schemas gleichzeitig: Die native Initialisierung wirft einen fatalen Konfigurationsfehler, wenn restartCron eingesetzt ist und restartIntervalMs ist größer als 0ist. Persistieren Sie kritische Anwendungsdaten, bevor Sie kurze Schedules verwenden.

Manuelle Native Neustart

Anrufen restartWebView() Wenn JavaScript entscheidet, dass die native WebView vorab ersetzt werden soll, zum Beispiel nach einem memory-intensiven Workflow:

await WebViewCrash.restartWebView();

Die Methode schreibt reason: 'manualRestart' und fragt die native code an, um eine frische WebView zu erstellen. Android reaktivierte die Hostaktivität. iOS rekonstruiert die Capacitor Bridgeansicht, sodass eine neue WKWebView erzeugt wird, anstatt die aktuelle Seite neu zu laden.

Vollständige Referenz

Fortsetzen von Verwendung von @capgo/capacitor-webview-crash

Wenn Sie die Mit @capgo/capacitor-webview-crash um native Medien und Schnittstellenverhalten zu planen und es mit @capgo/capacitor-WebView-Crash für die Implementierungsdetails in @capgo/capacitor-webview-crash Getting Started für die Implementierungsdetails in Einstieg Mit @capgo/capacitor-live-activities für die native Fähigkeit in Mit @capgo/capacitor-live-activities @capgo/capacitor-live-aktivitäten für die Implementierungsdetails in @capgo/capacitor-live-activities und Mit @capgo/capacitor-video-player für die native Fähigkeit in Mit @capgo/capacitor-video-player

FAQ

FAQs zum WebView-Crash-Plugin

Wie installiere ich die WebView Crash-Plugin in einer Capacitor-App?

Führen Sie "bun add @capgo/capacitor-webview-crash" (oder "npm install @capgo/capacitor-webview-crash") aus und führen Sie dann "bunx cap sync" aus, damit die iOS- und Android-Projekte die native code aufnehmen. Importieren Sie es aus "@capgo/capacitor-webview-crash" in Ihrer code-App.

Funktioniert @capgo/capacitor-webview-crash mit React, Vue und Angular?

Ja. WebView Crash ist ein Capacitor-Paket, daher funktioniert es mit jedem Webframework, das innerhalb von Capacitor läuft, einschließlich Ionic, React, Vue, Angular, Svelte und plain JavaScript.

Welche Capacitor-Version unterstützt @capgo/capacitor-webview-crash?

Capgo-Plugins folgen der Capacitor-Majorversion: Wählen Sie die Plugin-Majorversion, die Ihrer Capacitor-Majorversion entspricht (z.B. Plugin v8 mit Capacitor 8). Die Kompatibilitätsübersicht im GitHub-README enthält die unterstützten Versionen.

Ist @capgo/capacitor-webview-crash kostenlos und Open-Source?

Ja. Der Quellcode von code ist öffentlich auf GitHub unter https://github.com/Cap-go/capacitor-webview-crash/ verfügbar und das Paket kann kostenlos installiert werden von npm. Bugberichte und Pull-Anfragen sind willkommen.

Kann ich code aktualisieren, das WebView Crash verwendet, ohne eine App-Store-Bewertung?

Die Installation oder das Upgrade des Plugins ändert die native code, daher benötigt es eine neue App-Store-Build. Danach können JavaScript-, HTML- und CSS-Änderungen, die den Plugin aufrufen, sofort mit Capgo-Live-Updates verschickt werden.

Shippe WebView Crash-Änderungen ohne auf die App-Überprüfung warten

Einmal das Plugin in Ihrem Laden erstellt, Capgo lebendige Updates drücken Ihre JavaScript-, HTML- und CSS-Änderungen an die Benutzer in Minuten.

Starten Sie mit Capgo