Langsung ke konten utama
@capgo/capacitor-webview-crash Auth & Keamanan Open source

WebView Crash plugin Capacitor

Restart WebView yang crash secara native dan recycle WebView yang berjalan lama pada interval tetap

Instal

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

Panduan

Cara menggunakan WebView Crash di Capacitor

Tes di perangkat

Download aplikasi Capgo, lalu scan QR code.

Link QR pratinjau plugin WebView Crash code

Menggunakan @capgo/capacitor-webview-crash

Deteksi crash WebView yang pulih, restart WebView yang mati secara native, dan recycle WebView yang berjalan lama secara berkala sebelum memory pressure menyebabkan OOM.

Instal

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

Apa yang Diekspos Plugin Ini

  • Native restart setelah WebView crash di iOS dan Android.
  • Native WebView restart dengan interval tetap untuk aplikasi kiosk, POS, signage, scanner, dan dashboard yang berjalan berhari-hari.
  • restartWebView - Memungkinkan JavaScript meminta native WebView baru tanpa perlu reload halaman.
  • WebViewCrashPluginConfig - Tipe plugins.WebViewCrash opsi di capacitor.config.ts.
  • getPendingCrashInfo - Mengembalikan marker crash native atau restart yang tersimpan, atau null saat tidak ada yang tertunda.
  • clearPendingCrashInfo - Menghapus marker yang tersimpan setelah app memulihkan state-nya.
  • simulateCrashRecovery - Membuat fake crash marker agar flow recovery bisa dites secara lokal.
  • webViewRestoredAfterCrash - Event listener yang dipicu saat crash marker masih tertunda di runtime yang dipulihkan.
  • webViewRestoredAfterRestart - Event listener yang dipicu saat ada native restart marker yang masih tertunda.

Contoh Penggunaan

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

Auto Restart Native

Konfigurasi perilaku restart di capacitor.config.ts agar tetap berfungsi saat JavaScript tidak tersedia:

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;

Restart terjadwal ditetapkan reason: 'periodicRestart'. Gunakan restartIntervalMs untuk interval tetap atau restartCron untuk jadwal cron 5-field di zona waktu lokal perangkat, seperti 0 3 * * * untuk restart harian pukul 03:00. Jangan konfigurasi kedua jadwal sekaligus: inisialisasi native akan memicu error konfigurasi fatal saat restartCron diatur dan restartIntervalMs lebih besar dari 0. Simpan state aplikasi yang kritis sebelum menggunakan jadwal pendek.

Restart Native Manual

Panggil restartWebView() ketika JavaScript memutuskan WebView native harus diganti secara proaktif, misalnya setelah workflow yang berat memori:

await WebViewCrash.restartWebView();

Metode ini menulis reason: 'manualRestart' dan meminta code native untuk membuat WebView baru. Android membuat ulang host activity. iOS membangun ulang Capacitor bridge view agar WKWebView dibuat alih-alih memuat ulang halaman saat ini.

Referensi Lengkap

Lanjutkan dari Menggunakan @capgo/capacitor-webview-crash

Jika Anda menggunakan Menggunakan @capgo/capacitor-webview-crash untuk merencanakan perilaku media dan antarmuka native, hubungkan dengan @capgo/capacitor-webview-crash untuk detail implementasi di @capgo/capacitor-webview-crash, Panduan Memulai untuk detail implementasi di Getting Started, Menggunakan @capgo/capacitor-live-activities untuk kemampuan native di Menggunakan @capgo/capacitor-live-activities, @capgo/capacitor-live-activities untuk detail implementasi di @capgo/capacitor-live-activities, dan Menggunakan @capgo/capacitor-video-player untuk kapabilitas native saat menggunakan @capgo/capacitor-video-player.

FAQ

FAQ plugin WebView Crash

Bagaimana cara install plugin WebView Crash di aplikasi Capacitor?

Jalankan "bun add @capgo/capacitor-webview-crash" (atau "npm install @capgo/capacitor-webview-crash"), lalu jalankan "bunx cap sync" agar proyek iOS dan Android mendeteksi native code. Import dari "@capgo/capacitor-webview-crash" di dalam code aplikasi Anda.

Apakah @capgo/capacitor-webview-crash kompatibel dengan React, Vue, dan Angular?

Ya. WebView Crash adalah package Capacitor, jadi bisa dipakai dengan framework web apa pun yang berjalan di dalam Capacitor, termasuk Ionic, React, Vue, Angular, Svelte, dan JavaScript biasa.

Versi Capacitor mana yang didukung oleh @capgo/capacitor-webview-crash?

Plugin Capgo mengikuti versi mayor Capacitor: gunakan versi mayor plugin yang sesuai dengan versi mayor Capacitor Anda (contoh: plugin v8 dengan Capacitor 8). Tabel kompatibilitas di README GitHub mencantumkan versi yang masih di-maintain.

Apakah @capgo/capacitor-webview-crash gratis dan open source?

Ya. Source code tersedia secara publik di GitHub pada https://github.com/Cap-go/capacitor-webview-crash/ dan paketnya gratis untuk diinstal dari npm. Laporan bug dan pull request sangat kami terima.

Bisakah saya memperbarui code yang menggunakan WebView Crash tanpa review App Store?

Instalasi atau upgrade plugin akan mengubah native code, jadi butuh build store baru. Setelah itu, perubahan JavaScript, HTML, dan CSS yang memanggil plugin bisa langsung dikirim lewat live updates Capgo.

Rilis perbaikan WebView Crash tanpa menunggu review aplikasi

Setelah plugin ada di build store Anda, live updates Capgo akan mengirim perubahan JavaScript, HTML, dan CSS ke pengguna dalam hitungan menit.

Mulai dengan Capgo