Skip to content

@capgo/capacitor-webview-crash

長時間実行中のCapacitorアプリ用のネイティブ WebView のクラッシュ回復、手動再起動、および定期的な WebView のリサイクル

This plugin stores a native marker when the previous Capacitor WebView process dies or is recycled, then exposes that marker to the next JavaScript runtime after the app recovers. It can also restart the WebView from native code after a crash, on a fixed interval, on a cron schedule, or when JavaScript explicitly requests restartWebView()長時間のセッション中、キオスク、POS、ダッシュボード、スキャナ、サインジアプリはメモリの蓄積を避けるのに役立ちます。

  • ネイティブのクラッシュ再起動 - iOSまたはAndroidのウェブビューをレンダラーのプロセスが死んだときに再起動します。
  • 定期的な再起動 - 長時間のウェブビューをネイティブのタイマーを使ってリサイクルします。 restartIntervalMs マニュアルのネイティブ再起動 - JavaScriptがページをリロードせずに新しいネイティブのウェブビューを要求することができます。 restartCron.
  • スケジュールされた再起動 - restartWebView() 定期的なウェブビューのリサイクル
  • Capacitor をタイプします - 公開 WebViewCrashPluginConfigplugins.WebViewCrashcapacitor.config.ts.
  • getPendingCrashInfo - 保存されたネイティブのクラッシュまたは再起動マーカーを返します、または null 何も待っていない場合。
  • clearPendingCrashInfo - アプリが状態を復元した後、保存されたマーカーをクリアします。
  • simulateCrashRecovery - ローカルでリカバリフローをテストするために、偽のクラッシュマーカーを作成します。
  • addListener - クラッシュマーカーと webViewRestoredAfterCrashwebViewRestoredAfterRestart ネイティブの再起動マーカー

Public API

API
メソッド説明
getPendingCrashInfonative crash または再起動マーカーを返します。 null マーカーがなければ何も返されません。
clearPendingCrashInfoマーカーをクリアします。
simulateCrashRecoveryアプリの状態を復元した後です。
restartWebViewテスト用にローカルで recovery フローのテストを実行するために、fake crash マーカーを作成します。 reason: 'manualRestart' native code に WebView を作成するように求めます。
addListenernative __CAPGO_KEEP_0__ に WebView を作成するように求めます。 webViewRestoredAfterCrash リスナーがマッチするマーカーがまだ pendding である場合に発火します。 webViewRestoredAfterRestart リスナーがマッチするマーカーがまだ pendding である場合に発火します。
removeAllListenersプラグインリスナーをすべて削除します。

Capacitorのプラグインは、型付きの設定エントリを追加します。 PluginsConfig 型付きの WebViewCrash 設定エントリ:

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • このプラグインは、WebViewのクラッシュ後に回復を検出します。クラッシュを防ぐことはありません。
  • APIが発生すると、前のWebViewのインメモリ状態はすでに失われます。
  • スケジュールされた再起動は reason: 'periodicRestart';手動の再起動は reason: 'manualRestart'. 保存されていない状態を再起動間隔、cron スケジュール、または呼び出し前に保存する。 restartWebView().
  • restartCron デバイスのローカルタイムゾーンで使用する 5 つのフィールドの cron 語法の例 0 3 * * * 毎日 03:00 の再起動の場合です。 restartCron 両方のスケジュールを一度に設定しないでください: restartIntervalMs native の初期化は設定された場合と 0.
  • 大きい場合に致命的な構成エラーを投げます。 didCrash Android の場合、追加のフィールドとして rendererPriorityAtExit
  • が利用可能です。 appState when the terminated WebView process is observed. Manual and scheduled restarts rebuild the Capacitor bridge view so a new WKWebView を記録します。

マニュアルおよびスケジュールされた再起動は __CAPGO_KEEP_0__ ブリッジ ビューを再構築するため、新しい"が作成されます。

真実の源

__CAPGO_KEEP_0__のリファレンスはsynced src/definitions.ts から capacitor-webview-crash.

capgo/capacitor-webview-crashから続けてください

capgo/capacitor-webview-crashから続けてください

__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-crashを使用している場合 capgo/capacitor-webview-crash __CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-crashを使用して、ネイティブメディアとインターフェイスの動作を計画するには、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-crashに接続してください。 capgo/capacitor-webview-crashを使用して、ネイティブ機能を計画するには、@capgo/capacitor-webview-crashを使用してください。 capgo/capacitor-live-activitiesを使用してください。 native media and interface behaviorを計画するには、@capgo/capacitor-webview-crashを使用してください。 本製品のネイティブ機能を使用する場合の @capgo/capacitor-live-activities @capgo/capacitor-live-activities 本製品の実装詳細を使用する場合の @capgo/capacitor-live-activities 本製品の @capgo/capacitor-video-player を使用する 本製品のネイティブ機能を使用する場合の @capgo/capacitor-video-player、 @capgo/capacitor-video-player 本製品の実装詳細を使用する場合の @capgo/capacitor-video-player