Langkapi ke konten utama
Kembali ke plugin
@capgo/capacitor-webview-crash
Tutorial
@capgo/capacitor-webview-crash

Crash WebView

Mulai ulang WebViews yang crash secara native dan daur ulang WebViews yang berjalan lama pada interval waktu tertentu

Panduan

Tutorial tentang Crash WebView

Jalankan pada perangkat

Unduh aplikasi Capgo terlebih dahulu, kemudian scan kode QR code.

Pratinjau Tautan QR Plugin Crash WebView code

Menggunakan @capgo/capacitor-webview-crash

Mendeteksi crash WebView yang diperoleh kembali, restart WebView mati secara native, dan memulihkan WebView yang berjalan lama pada interval waktu tertentu sebelum tekanan memori berubah menjadi OOM.

Install

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

Apa yang Dibuka oleh Plugin Ini

  • Pulihkan native setelah crash WebView pada iOS dan Android.
  • Pulihkan WebView native secara interval waktu tertentu untuk aplikasi kiosk, POS, tanda, scanner, dan dashboard yang berjalan selama hari.
  • restartWebView - Biarkan JavaScript meminta WebView native segar 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 penyimpanan setelah aplikasi Anda telah memulihkan keadaannya.
  • simulateCrashRecovery - Membuat marker kecelakaan palsu agar alur pemulihan dapat diuji secara lokal.
  • webViewRestoredAfterCrash - Event pendengar yang dipicu ketika marker kecelakaan masih menunggu di runtime yang dipulihkan.
  • webViewRestoredAfterRestart - Event pendengar yang dipicu ketika marker restart asli 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);
}

Restart Otomatis Nativ

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 direncanakan menulis reason: 'periodicRestart'. Gunakan restartIntervalMs untuk interval tertentu 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 ini secara bersamaan: inisialisasi asli mengeluarkan kesalahan konfigurasi fatal ketika restartCron diatur dan restartIntervalMs lebih besar dari 0. Simpan keadaan aplikasi kritis sebelum menggunakan jadwal pendek.

Manual Restart Asli

Panggil restartWebView() context: Fragment teks HTML dari string Capgo UI yang lebih panjang (kunci induk `appflow_migration_step2`). Halaman/area: Perbandingan/migrasi copy pemasaran Appflow. Peran: Kalimat copy website. Dilihat di: halaman ionic-appflow.astro. Simpan istilah produk/merek dan istilah pengembang Capgo secara tepat. Kunci pesan `appflow_migration_step2` (Langkah 2 Migrasi Appflow).

await WebViewCrash.restartWebView();

ketika JavaScript memutuskan bahwa WebView asli harus diganti secara proaktif, misalnya setelah aliran kerja berat memori: reason: 'manualRestart' and asks native code to create a fresh WebView. Android recreates the host activity. iOS rebuilds the Capacitor bridge view so a new WKWebView dan meminta native __CAPGO_KEEP_0__ untuk membuat WebView segar. Android merekreasi aktivitas host. iOS membangun kembali __CAPGO_KEEP_1__ jembatan view sehingga halaman baru

dihasilkan bukan dari memuat halaman saat ini.

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 Getting Started untuk detail implementasi di Getting Started Menggunakan @capgo/capacitor-live-activities untuk kemampuan asli dalam Menggunakan @capgo/capacitor-aktivitas-nyata, @capgo/capacitor-aktivitas-nyata untuk detail implementasi dalam @capgo/capacitor-aktivitas-nyata, dan Menggunakan @capgo/capacitor-pemain-video untuk kemampuan asli dalam Menggunakan @capgo/capacitor-pemain-video.