Skip to content

@capgo/capacitor-webview-crash

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

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、ダッシュボード、スキャナ、サインेजアプリはメモリの蓄積を回避するのに役立ちます。

  • Native crash restart - iOSまたはAndroidのWebViewを再起動します。レンダラープロセスが死にます。
  • Scheduled restart - 長時間実行中のWebViewsをnativeタイマーまたは壁時計を使用してリサイクルします。 restartIntervalMs or restartCron.
  • Manual native restart - JavaScriptがページリロードなしで新しいnative WebViewを要求することを許可します。 restartWebView() Typed __CAPGO_KEEP_0__ config - Exposes
  • Typed Capacitor config - Exposes WebViewCrashPluginConfig in plugins.WebViewCrash Native crash restart - iOSまたはAndroidのWebViewを再起動します。レンダラープロセスが死にます。 capacitor.config.ts.
  • getPendingCrashInfo - __CAPGO_KEEP_0__を取得します。__CAPGO_KEEP_0__が存在しない場合は何も返されません。 null - アプリの状態を復元した後、__CAPGO_KEEP_0__をクリアします。
  • clearPendingCrashInfo - ローカルでリコバリーフローをテストするために、__CAPGO_KEEP_0__をシミュレートします。
  • simulateCrashRecovery - __CAPGO_KEEP_0__
  • addListener __CAPGO_KEEP_0__ webViewRestoredAfterCrash メソッド webViewRestoredAfterRestart 説明

APIを取得します。APIが存在しない場合は何も返されません。

API
__CAPGO_KEEP_0____CAPGO_KEEP_0__
getPendingCrashInfo__CAPGO_KEEP_0__ null __CAPGO_KEEP_0__が何も待っていない場合。
clearPendingCrashInfo__CAPGO_KEEP_0__の状態が復元された後、保存されたマーカーをクリアします。
simulateCrashRecoveryローカルで復元フローをテストするために、偽のクラッシュマーカーを作成します。
restartWebView__CAPGO_KEEP_0__に書き込みます reason: 'manualRestart' codeに書き込みます。
addListener__CAPGO_KEEP_0__に書き込みます。 webViewRestoredAfterCrash __CAPGO_KEEP_0__に書き込みます。 webViewRestoredAfterRestart __CAPGO_KEEP_0__に書き込みます。
removeAllListeners__CAPGO_KEEP_0__に書き込みます。

__CAPGO_KEEP_0__に書き込みます。

__CAPGO_KEEP_0__に書き込みます。

Capacitorに書き込みます。 PluginsConfig タイプで入力 WebViewCrash 設定エントリ:

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 は設定されており restartIntervalMs は大きくなります 0.
  • Androidの場合、追加のフィールドとして didCrashrendererPriorityAtExit 利用可能です。
  • iOSの場合、プラグインは appState when the terminated WebView process is observed. Manual and scheduled restarts rebuild the Capacitor bridge view so a new WKWebView 手動と予定された再起動は__CAPGO_KEEP_0__ ブリッジビューを再構築するので、新しい

が作成されます。

真実の源

セクションのタイトルは「真実の源」 src/definitions.ts この参照は、 capacitor-webview-クラッシュ.

capgoから続けて@capacitor/capgo-webview-クラッシュ

capgoから続けて@capacitor/capgo-webview-クラッシュ」のセクション

__CAPGO_KEEP_0__を使用している場合 @capgo/capacitor-webview-クラッシュ ネイティブのメディアとインターフェイスの動作を計画するには、@__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-クラッシュを接続する必要があります @capgo/capacitor-webview-クラッシュを使用してネイティブ機能を実装する @capgo/capacitor-webview-クラッシュを使用してネイティブ機能を実装する @capgo/capacitor-ライブアクティビティ @capgo/capacitor-ライブアクティビティを使用してネイティブ機能を実装する @capgo/capacitor-ライブアクティビティ @capgo/capacitor-ライブアクティビティの実装詳細 Using @capgo/capacitor-video-player native機能のためにUsing @capgo/capacitor-video-player Using @capgo/capacitor-video-player 実装詳細のために@capgo/capacitor-video-player