Lompat ke konten

@capgo/capacitor-webview-crash

Pulihkan kegagalan WebView native, restart manual, dan daur ulang WebView yang direncanakan untuk aplikasi Capacitor yang berjalan lama.

This plugin stores a native marker when the previous Capacitor WebView process dies or is recycled, then exposes that marker to the next JavaScript runtime after the app recovers. It can also restart the WebView from native code after a crash, on a fixed interval, on a cron schedule, or when JavaScript explicitly requests restartWebView()yang membantu aplikasi kiosk, POS, dashboard, scanner, dan signage menghindari pembangunan memori selama sesi panjang.

  • Mulai kembali kecelakaan native - Mulai kembali WebView dari iOS atau Android ketika proses renderer mati.
  • Mulai ulang yang dijadwalkan - Mengulangi tampilan Web yang berjalan lama menggunakan timer native dengan waktu restartIntervalMs atau jam dinding restartCron.
  • Pulihkan native manual - Mengizinkan JavaScript meminta tampilan WebView native yang segar dengan restartWebView() tanpa melakukan reload halaman.
  • Konfigurasi Capacitor yang ditipe - Mengungkapkan WebViewCrashPluginConfig untuk plugins.WebViewCrash dalam capacitor.config.ts.
  • getPendingCrashInfo - Mengembalikan marker kacau atau restart native yang disimpan, atau null ketika tidak ada yang menunggu.
  • clearPendingCrashInfo - Membersihkan marker yang disimpan setelah aplikasi Anda telah memulihkan keadaan.
  • simulateCrashRecovery - Membuat marker kacau palsu agar alur pemulihan dapat diuji secara lokal.
  • addListener - Mengaktifkan webViewRestoredAfterCrash untuk marker kecelakaan dan webViewRestoredAfterRestart untuk marker restart asli.
MetodeDeskripsi
getPendingCrashInfoMengembalikan marker kecelakaan atau restart asli native yang disimpan, atau null ketika tidak ada yang menunggu.
clearPendingCrashInfoMenghapus marker yang disimpan setelah aplikasi Anda telah memulihkan keadaannya.
simulateCrashRecoveryMembuat marker kecelakaan palsu agar alur pemulihan dapat diuji secara lokal.
restartWebViewMenulis reason: 'manualRestart' dan meminta native code untuk membuat WebView yang segar.
addListenerApi webViewRestoredAfterCrash atau webViewRestoredAfterRestart ketika seorang pendengar menempel dan sebuah marker yang sesuai masih menunggu.
removeAllListenersMenghapus semua pendengar plugin.

Plugin ini memperluas Capacitor’s PluginsConfig dengan sebuah entri konfigurasi yang ditipekan: WebViewCrash Salin ke clipboard

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}

Bagian berjudul “Catatan”

Tipe Konfigurasi
  • Plugin ini mendeteksi pemulihan setelah crash WebView. Ini tidak mencegah crash dasar.
  • Runtime JavaScript yang dipulihkan adalah baru, jadi semua keadaan di memori dari WebView sebelumnya sudah hilang ketika API ini dipicu.
  • Jadwal restart menulis reason: 'periodicRestart'Jadwal restart manual menulis reason: 'manualRestart'. Simpan keadaan yang belum disimpan sebelum mengaktifkan interval restart singkat, jadwal cron, atau memanggil restartWebView().
  • restartCron Menggunakan sintaks cron 5-field di zona waktu lokal perangkat, misalnya 0 3 * * * untuk restart harian pada pukul 03:00. Jangan konfigurasi kedua jadwal sekaligus: inisialisasi native akan melemparkan kesalahan konfigurasi fatal ketika restartCron diatur dan restartIntervalMs lebih besar dari 0.
  • Pada Android, field tambahan seperti didCrash dan rendererPriorityAtExit mungkin tersedia.
  • Pada iOS, plugin ini merekam appState ketika proses WebView yang dihentikan diamati. Restart manual dan yang dijadwalkan membangun kembali jembatan Capacitor view sehingga view baru WKWebView dibuat.

Referensi ini disinkronkan dari src/definitions.ts di capacitor-webview-crash.

Teruskan dari @capgo/capacitor-webview-crash

Bagian berjudul “Teruskan dari @capgo/capacitor-webview-crash”

Jika Anda menggunakan @capgo/capacitor-webview-crash Untuk merencanakan perilaku media dan antarmuka asli, hubungkannya dengan Menggunakan @capgo/capacitor-webview-crash Untuk kemampuan asli dalam Menggunakan @capgo/capacitor-webview-crash, Menggunakan @capgo/capacitor-live-activities Untuk kemampuan asli dalam Menggunakan @capgo/capacitor-live-activities, @capgo/capacitor-live-activities Untuk detail implementasi dalam @capgo/capacitor-live-activities, Menggunakan @capgo/capacitor-video-player Untuk kemampuan asli dalam Menggunakan @capgo/capacitor-video-player, dan @capgo/capacitor-video-player Untuk detail implementasi dalam @capgo/capacitor-video-player.