Skip to content

@capgo/capacitor-webview-crash

Native WebViewのクラッシュ回復、手動再起動、長時間実行中のCapacitorアプリの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()主な機能

  • スケジュールされた再起動 - 長時間実行中の WebView をネイティブのタイマーを使用してリサイクルします。
  • または壁時計 restartIntervalMs マニュアルのネイティブ再起動 - JavaScript がページをリロードせずに、最新のネイティブ WebView を要求できます。 restartCron.
  • これはキオスク、POS、ダッシュボード、スキャナ、サインेजアプリが長時間のセッション中にメモリの蓄積を回避するのに役立ちます。 restartWebView() Native __CAPGO_KEEP_1__ から WebView を再起動することもできます。
  • Capacitorのタイプされた設定 - 公開 WebViewCrashPluginConfigplugins.WebViewCrashcapacitor.config.ts.
  • getPendingCrashInfo - __CAPGO_KEEP_0__が保存されたネイティブのクラッシュまたは再起動マーカー、または null 何も待っていない場合に返されます。
  • clearPendingCrashInfo - アプリが状態を復元した後、保存されたマーカーをクリアします。
  • simulateCrashRecovery - ローカルでリカバリフローをテストするために偽のクラッシュマーカーを作成します。
  • addListener - クラッシュマーカーと webViewRestoredAfterCrash のネイティブの再起動マーカー webViewRestoredAfterRestart
メソッド説明
getPendingCrashInfo__CAPGO_KEEP_0__が保持しているネイティブのクラッシュまたは再起動マーカーを返します。 null 何も保留されていない場合。
clearPendingCrashInfoアプリが状態を復元した後、マーカーをクリアします。
simulateCrashRecoveryローカルでリコバリーフローをテストするために、偽のクラッシュマーカーを作成します。
restartWebView書き込み reason: 'manualRestart' ネイティブのcodeに新しいWebViewを作成するように求めます。
addListener発火 webViewRestoredAfterCrash または webViewRestoredAfterRestart リスナーがアタッチされ、まだ保留中のマッチングマーカーが存在する場合。
removeAllListenersすべてのプラグインリスナーを削除します。

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

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • このプラグインは、WebViewのクラッシュ後に回復を検出します。クラッシュを防ぐことはありません。
  • APIが発火するときには、前のWebViewのインメモリ状態はすでに失われます。新しいJavaScriptランタイムは、前のWebViewのインメモリ状態を保持していません。
  • スケジュールされた再起動は reason: 'periodicRestart'; 手動の再起動は reason: 'manualRestart'. __CAPGO_KEEP_0__ を保存されていない状態を保存する前に、短い再起動間隔、cron スケジュール、または呼び出しを有効にします。 restartWebView().
  • restartCron デバイスのローカルタイムゾーンで使用される 5 つのフィールドの cron 語法の例 0 3 * * * 毎日 03:00 の再起動の場合です。両方のスケジュールを一度に設定しないでください: restartCron native initialization が設定されていて restartIntervalMs 大きい場合、fatal config エラーが native initialization に投げられます。 0.
  • Android の場合、追加のフィールドとして didCrashrendererPriorityAtExit が利用可能です。
  • iOS の場合、プラグインは終了した WebView プロセスが観測されたときに 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を使用して、ネイティブ メディアとインターフェイスの動作を計画する場合、Cloudflareで接続してください capgo/capacitor-webview-crash capgo/capacitor-live-activities ネイティブ機能のためにUsing @capgo/capacitor-webview-crashを使用する場合、Using @capgo/capacitor-live-activitiesを使用してください native機能の使用にあたっては、@capgo/capacitor-live-activitiesを使用します。 @capgo/capacitor-live-activities 実装詳細については、@capgo/capacitor-live-activitiesを参照してください。 Using @capgo/capacitor-video-player native機能の使用にあたっては、@capgo/capacitor-video-playerを使用します。 @capgo/capacitor-video-player 実装詳細については、@capgo/capacitor-video-playerを参照してください。