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 restartrestartCron. - __CAPGO_KEEP_0__の型付き設定 - Exposes
restartWebView()for - Typed Capacitor config - Exposes
WebViewCrashPluginConfig- Native crash or restartマーカーが保存されている場合、または何も待っていない場合は、- 保存されたマーカーをアプリの状態が復元された後でクリアする- Returns the stored native crash or restart marker, orplugins.WebViewCrashwhen 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-クラッシュマーカーとwebViewRestoredAfterCrashnative再起動マーカーwebViewRestoredAfterRestartの両方で発火します。
Public API
Section titled “Public API”| Method | Description |
|---|---|
getPendingCrashInfo | nativeクラッシュまたは再起動マーカーを取得します。 null when nothing is pending. |
clearPendingCrashInfo | Clears the stored marker after your app has restored its state. |
simulateCrashRecovery | ローカルでリcoveryフローのテストができるように、偽のクラッシュマーカーを作成します。 |
restartWebView | Native 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;}Notes
「Notes」というタイトルのセクション- このプラグインは、WebViewのクラッシュ後に回復を検出します。クラッシュの根本原因を防ぐことはありません。
- 回復したJavaScriptランタイムは新しいので、前のWebViewから保持されていたインメモリの状態は、このAPIが発火したときにすでに失われています。
- 予定された再起動は
reason: 'periodicRestart';手動の再起動はreason: 'manualRestart'. 未保存の状態を保存する前に、短い再起動間隔、cronスケジュール、またはrestartWebView(). restartCronデバイスのローカルタイムゾーンで使用する5つのフィールドのcronシンタックスの例0 3 * * *毎日03:00の再起動の場合restartCronAndroid上では、restartIntervalMs設定された場合と0.- の両方を同時に設定すると、ネイティブの初期化は致命的な構成エラーを投げます:
didCrashとrendererPriorityAtExit利用可能である場合があります。 - 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.の実装詳細については