Skip to content

@capgo/capacitor-webview-crash

Native WebView crash recovery, manual restart, and scheduled WebView recycling for long-running Capacitor apps.

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、ダッシュボード、スキャナ、サインेजアプリ向けに役立ちます。

Core Capabilities

Core Capabilities
  • iOSまたはAndroidのレンダラープロセスが死んだときにWebViewを再起動するNative crash restart
  • or a wall-clockを使用したりするScheduled restart restartIntervalMs ページをリロードせずにJavaScriptが要求したNative WebViewを取得するManual native restart restartCron.
  • __CAPGO_KEEP_0__の型付き設定 - Exposes restartWebView() for
  • Typed Capacitor config - Exposes WebViewCrashPluginConfig - Native crash or restartマーカーが保存されている場合、または何も待っていない場合は、- 保存されたマーカーをアプリの状態が復元された後でクリアする- Returns the stored native crash or restart marker, or plugins.WebViewCrash when nothing is pending. capacitor.config.ts.
  • getPendingCrashInfo - Clears the stored marker after your app has restored its state. null - Clears the stored marker after your app has restored its state.
  • clearPendingCrashInfo - Clears the stored marker after your app has restored its state.
  • simulateCrashRecovery -ローカルでリcoveryフローのテストができるように、偽のクラッシュマーカーを作成します。
  • addListener -クラッシュマーカーと webViewRestoredAfterCrash native再起動マーカー webViewRestoredAfterRestart の両方で発火します。
MethodDescription
getPendingCrashInfonativeクラッシュまたは再起動マーカーを取得します。 null when nothing is pending.
clearPendingCrashInfoClears the stored marker after your app has restored its state.
simulateCrashRecoveryローカルでリcoveryフローのテストができるように、偽のクラッシュマーカーを作成します。
restartWebViewNative WebViewを作成し、__CAPGO_KEEP_0__にリクエストします。 reason: 'manualRestart' codeのWebViewが読み込まれると、
addListener__CAPGO_KEEP_0__のWebViewが読み込まれると、 webViewRestoredAfterCrash リスナが追加され、待ち受け中のマーカーが一致するとリスナーがトリガーされます。 webViewRestoredAfterRestart リスナが追加され、待ち受け中のマーカーが一致するとリスナーがトリガーされます。
removeAllListenersリスナがすべて削除されます。

設定タイプ

設定タイプ

Capacitorを強化するプラグインは、 PluginsConfig __CAPGO_KEEP_0__を強化するプラグインは、 WebViewCrash タイプ付きの設定エントリを__CAPGO_KEEP_0__に追加します。

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • このプラグインは、WebViewのクラッシュ後に回復を検出します。クラッシュの根本原因を防ぐことはありません。
  • 回復したJavaScriptランタイムは新しいので、前のWebViewから保持されていたインメモリの状態は、このAPIが発火したときにすでに失われています。
  • 予定された再起動は reason: 'periodicRestart';手動の再起動は reason: 'manualRestart'. 未保存の状態を保存する前に、短い再起動間隔、cronスケジュール、または restartWebView().
  • restartCron デバイスのローカルタイムゾーンで使用する5つのフィールドのcronシンタックスの例 0 3 * * * 毎日03:00の再起動の場合 restartCron Android上では、 restartIntervalMs 設定された場合と 0.
  • の両方を同時に設定すると、ネイティブの初期化は致命的な構成エラーを投げます: didCrashrendererPriorityAtExit 利用可能である場合があります。
  • iOSでは、プラグインは終了したWebViewプロセスが観測されたときに記録します。 appState 手動および予定された再起動では、Capacitor ブリッジビューを再構築するため、新しい WKWebView は作成されます。

この参照は src/definitions.ts からsyncedです。 capacitor-webview-crash.

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

「から続けてください@capgo/capacitor-webview-crash」セクション

If you are using @capgo/capacitor-webview-crash を使用してネイティブメディアとインターフェイスの動作を計画し、 Using @capgo/capacitor-webview-crash for the native capability in Using @capgo/capacitor-webview-crash, Using @capgo/capacitor-live-activities for the native capability in Using @capgo/capacitor-live-activities, Using @capgo/capacitor-live-activities for the implementation detail in @capgo/capacitor-live-activities, @capgo/capacitor-live-activities を使用して@capgo/capacitor-live-activitiesの実装詳細を使用する Using @capgo/capacitor-video-player @capgo/capacitor-video-player.の実装詳細については