Lompat ke Konten

@capgo/capacitor-webview-crash

Pemulihan Crash Native WebView, Restart Manual, dan Pemulihan WebView yang Terjadwal untuk Aplikasi Capacitor yang Berjalan Lama

Plugin ini menyimpan marker native ketika proses WebView sebelumnya Capacitor mati atau diperbarui, kemudian mengekspos marker tersebut ke runtime JavaScript setelah aplikasi pulih. Ini juga dapat memulai WebView dari native code setelah crash, pada interval tertentu, pada jadwal cron, atau ketika JavaScript meminta secara eksplisit restartWebView()Aplikasi ini membantu aplikasi kiosk, POS, dashboard, scanner, dan aplikasi tanda yang menghindari pembangunan memori selama sesi panjang

  • Restart Crash Native - Memulai kembali WebView dari iOS atau Android ketika proses renderer mati
  • Restart yang Terjadwal - Merecycle WebView yang berjalan lama menggunakan timer native restartIntervalMs atau jam dinding restartCron.
  • Manual restart native - Biarkan JavaScript meminta WebView native yang segar dengan restartWebView() tanpa melakukan reload halaman.
  • Konfigurasi Capacitor yang dituliskan - Mengungkapkan WebViewCrashPluginConfig untuk plugins.WebViewCrash di capacitor.config.ts.
  • getPendingCrashInfo - Mengembalikan marker crash 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 crash palsu agar alur pemulihan dapat diuji secara lokal.
  • addListener - Mengaktifkan webViewRestoredAfterCrash untuk marker crash dan webViewRestoredAfterRestart untuk marker restart asli.
MetodeDeskripsi
getPendingCrashInfoMengembalikan marker crash atau restart asli native, atau null ketika tidak ada yang menunggu.
clearPendingCrashInfoMenghapus marker yang disimpan setelah aplikasi Anda telah memulihkan keadaannya.
simulateCrashRecoveryMembuat marker crash palsu agar alur pemulihan dapat diuji secara lokal.
restartWebViewMenulis reason: 'manualRestart' dan meminta native code untuk membuat WebView segar.
addListenerMengirim webViewRestoredAfterCrash atau ketika seorang pendengar menambahkan dan marker yang sesuai masih menunggu. webViewRestoredAfterRestart Menghapus semua pendengar plugin.
removeAllListenersJenis Konfigurasi

Bab berjudul “Jenis Konfigurasi”

Plugin ini memperluas __CAPGO_KEEP_0__’s

The plugin augments Capacitor’s PluginsConfig Cetak ke papan klip WebViewCrash Catatan

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

Plugin ini mendeteksi pemulihan setelah crash WebView. Ini tidak mencegah crash yang tersembunyi.

Removes all plugin listeners.
  • Config Type
  • Runtime JavaScript yang ditemukan kembali adalah baru, jadi setiap keadaan di memori dari WebView sebelumnya sudah hilang ketika API ini terjadi.
  • Restart yang dijadwalkan menulis reason: 'periodicRestart'; 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 mengkonfigurasi kedua jadwal sekaligus: inisialisasi native akan melemparkan kesalahan konfigurasi fatal ketika restartCron dipasang dan restartIntervalMs lebih besar dari 0.
  • Pada Android, bidang 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 Capacitor 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 interface native, 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.