Langkah ke Konten Utama
Kembali ke plugin
@capgo/capacitor-webview-crash
Tutorial
@capgo/capacitor-webview-crash

WebView Crash

Mulai ulang tampilan web yang gagal secara native dan daur ulang tampilan web yang berjalan lama pada interval tertentu

Panduan

Tutorial tentang Crash Tampilan Web

Menggunakan @capgo/capacitor-webview-crash

Deteksi crash tampilan web yang ditemukan kembali, restart tampilan web mati secara native, dan daur ulang tampilan web yang berjalan lama pada interval tertentu sebelum tekanan memori berubah menjadi OOM.

Instal

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

Apa yang Dikembangkan oleh Plugin Ini

  • Restart Native Setelah Crash WebView di iOS dan Android.
  • Restart WebView Native dengan Interval Tetap untuk Aplikasi Kiosk, POS, Tanda, Scanner, dan Dashboard yang Berjalan selama Hari.
  • restartWebView - Biarkan JavaScript meminta WebView Native yang Baru tanpa Melakukan Reload Halaman.
  • WebViewCrashPluginConfig - Tipe plugins.WebViewCrash opsi 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 Mengembalikan Statusnya.
  • simulateCrashRecovery - Membuat Marker Crash Palsu agar Alur Pemulihan dapat Dites Lokal.
  • webViewRestoredAfterCrash - Event Dikirimkan Ketika Marker Crash Masih Menunggu di Runtime yang Diperbaiki.
  • webViewRestoredAfterRestart - Dikirimkan event listener ketika marker restart native apa pun masih menunggu.

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

Pengulangan Otomatis Native

Konfigurasi perilaku restart di capacitor.config.ts agar tetap berfungsi ketika 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 yang dijadwalkan menulis reason: 'periodicRestart'. Gunakan restartIntervalMs untuk interval waktu tetap atau restartCron untuk jadwal 5-kalender dalam zona waktu lokal perangkat, seperti 0 3 * * * untuk restart harian pukul 03:00. Jangan konfigurasi kedua jadwal sekaligus: inisialisasi native melemparkan kesalahan konfigurasi fatal ketika restartCron diatur dan restartIntervalMs lebih besar dari 0. Simpan keadaan aplikasi kritis sebelum menggunakan jadwal singkat.

Restart Native Manual

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

await WebViewCrash.restartWebView();

Metode menulis reason: 'manualRestart' dan bertanya native code untuk membuat WebView baru. Android merekreasi aktivitas host. iOS membangun kembali jembatan Capacitor view sehingga halaman baru WKWebView dibuat bukan dari memuat halaman saat ini.

Referensi Lengkap

Teruskan dari Menggunakan @capgo/capacitor-webview-crash

Jika Anda menggunakan Menggunakan @capgo/capacitor-webview-crash untuk merencanakan perilaku media dan antarmuka native, hubungkannya dengan @capgo/capacitor-webview-crash untuk detail implementasi di @capgo/capacitor-webview-crash, Mengawali untuk detail implementasi di Mengawali, 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 kemampuan asli di Menggunakan @capgo/capacitor-player video.