Ke halaman utama
@capgo/capacitor-crash-webview @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-kecelakaan-pemandu-layar Sumber Terbuka

Kecelakaan Pemandu Lihat Plugin Capacitor

Restart aplikasi WebView yang gagal dan daur ulang aplikasi WebView yang berjalan lama secara berkala

Install

bun add @capgo/capacitor-webview-crash bunx cap sync
npm, pnpm or 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

Uji coba di perangkat

Unduh aplikasi Capgo, kemudian scan kode QR code.

Tautan QR Pratinjau code Plugin Crash WebView

Menggunakan @capgo/capacitor-webview-crash

Deteksi kembali kegagalan WebView, restart WebView mati secara native, dan daur ulang 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

  • Restart native setelah crash WebView pada iOS dan Android.
  • Restart WebView native pada interval tetap untuk aplikasi kiosk, POS, tanda, scanner, dan dashboard yang berjalan selama hari.
  • restartWebView - Biarkan JavaScript meminta WebView native segar tanpa melakukan reload halaman.
  • WebViewCrashPluginConfig - Jenis plugins.WebViewCrash opsi dalam capacitor.config.ts.
  • getPendingCrashInfo - Mengembalikan marker kejadian crash atau restart asli native, atau null Tidak ada yang menunggu.
  • clearPendingCrashInfo - Membuat marker kejadian crash palsu agar alur pemulihan dapat diuji secara lokal.
  • simulateCrashRecovery - Event pendengar yang dipicu ketika marker kejadian crash masih menunggu di runtime yang dipulihkan.
  • webViewRestoredAfterCrash - Event pendengar yang dipicu ketika ada marker restart native yang masih menunggu.
  • webViewRestoredAfterRestart Event listener yang dipicu ketika ada marker restart native yang masih menunggu.

- Restart Otomatis Native

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

- Konfigurasi perilaku restart di

- sehingga tetap berfungsi ketika JavaScript tidak tersedia: capacitor.config.ts Jadi, itu 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 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 melemparkan kesalahan konfigurasi fatal ketika restartCron diatur dan restartIntervalMs lebih besar dari 0. Simpan keadaan aplikasi kritis sebelum menggunakan jadwal pendek.

Restart Native Manual

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

await WebViewCrash.restartWebView();

Tuliskan metode reason: 'manualRestart' dan meminta native code untuk membuat WebView yang segar. Android menghidupkan kembali aktivitas host. iOS membangun kembali jembatan Capacitor view sehingga halaman baru WKWebView dibuat daripada memuat ulang halaman yang sedang berjalan.

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-crash pada Pemutus Pemirsa Web untuk detail implementasi di @capgo/capacitor-webview-crash, Mulai Menggunakan untuk detail implementasi di Mulai, Menggunakan @capgo/capacitor-aktivitas-hidup untuk kemampuan asli di Menggunakan @capgo/capacitor-aktivitas-hidup, @capgo/capacitor-aktivitas-hidup untuk detail implementasi di @capgo/capacitor-aktivitas-hidup, dan Menggunakan @capgo/capacitor-pemain-video untuk kemampuan asli di Menggunakan @capgo/capacitor-pemain-video.

FAQ

FAQ Plugin Crash WebView

Bagaimana cara menginstal plugin Crash WebView di aplikasi Capacitor?

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

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

Iya. Plugin Crash WebView adalah paket Capacitor, sehingga berfungsi 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?

Capgo plugin mengikuti versi utama Capacitor: gunakan versi plugin utama yang sesuai dengan versi utama Capacitor (misalnya plugin v8 dengan Capacitor 8). Tabel kompatibilitas di README GitHub menampilkan versi yang masih dipelihara.

Apakah @capgo/capacitor-webview-crash gratis dan terbuka sumber?

Ya. Sumber code tersedia secara publik di GitHub di https://github.com/Cap-go/capacitor-webview-crash/ dan paketnya dapat diinstal secara gratis dari npm. Laporan bug dan permintaan pull diterima.

Dapatkah saya memperbarui code yang menggunakan WebView Crash tanpa melalui tinjauan App Store?

Menginstal atau mengupgrade plugin mengubah code native, sehingga memerlukan build toko baru. Setelah itu, perubahan JavaScript, HTML, dan CSS yang memanggil plugin dapat dikirimkan secara instan dengan Capgo live updates.

Kirim perubahan WebView Crash tanpa menunggu tinjauan aplikasi

Saat plugin sudah di dalam toko Anda, Capgo pembaruan hidup mengirimkan perubahan JavaScript, HTML, dan CSS Anda ke pengguna dalam menit.

Mulai dengan Capgo