メインコンテンツにジャンプ

@capgo/capacitor-webview-crash

@Capacitor/__CAPGO_KEEP_1__-webview-crash

このプラグインは、前のCapacitor WebViewプロセスが死ぬかリサイクルされる場合に、ネイティブマーカーを保存し、再起動した後、JavaScriptランタイムにそのマーカーを公開します。 また、JavaScriptが明示的に要求した場合、またはcronスケジュール、または一定の間隔で、WebViewをネイティブcodeから再起動することもできます。 restartWebView()これは、長時間のセッション中にメモリの蓄積を避けるために、キオスク、POS、ダッシュボード、スキャナ、サインेजアプリを助けることができます。

  • iOSまたはAndroidからNative crash再起動 - レンダラープロセスが死んだときにWebViewを再起動します。
  • スケジュールされた再起動 - 長時間実行中のWebViewを使用してnativeタイマーを使用して restartIntervalMs または壁時計 restartCron.
  • マニュアルなNative再起動 - JavaScriptがページをリロードせずに新しいNative WebViewを要求できるようにします。 restartWebView() タイプされた__CAPGO_KEEP_0__構成 -
  • Capacitor をタイプして設定 - 画面外のエラーを表示 WebViewCrashPluginConfig の plugins.WebViewCrash in capacitor.config.ts.
  • getPendingCrashInfo 何も待っていないときは null - アプリが状態を復元した後、ストレージされたマーカーをクリアします。
  • clearPendingCrashInfo - ローカルでテストできるように回復フローをテストするために、偽のクラッシュマーカーを作成します。
  • simulateCrashRecovery scheduled restart - Nativeタイマーを使用して長時間実行中のWebViewを回収する
  • addListener - 例外発生 webViewRestoredAfterCrash - native再起動マーカーも webViewRestoredAfterRestart - どのnative再起動マーカーも

Public API

Public API
メソッド説明
getPendingCrashInfonative crashまたはrestartマーカーを取得します。 null native crashまたはrestartマーカーが存在しない場合、または
clearPendingCrashInfonative crashまたはrestartマーカーが存在しない場合、または
simulateCrashRecoverynative crashまたはrestartマーカーが存在しない場合、または
restartWebViewWrites reason: 'manualRestart' Native code において、WebView を新しく作成するように求める。
addListenerFires webViewRestoredAfterCrash または webViewRestoredAfterRestart リスナがアタッチされ、まだマッチするマーカーが保留中のとき。
removeAllListenersリスナーがアタッチされ、まだマッチングマーカーが保留中の場合。

すべてのプラグインリスナーを削除。

設定タイプ

The plugin augments Capacitor’s PluginsConfig プラグインは __CAPGO_KEEP_0__ において、型付きの設定エントリを追加します。 WebViewCrash 型付きの設定エントリ:

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}

ノート

「Notes」
  • このプラグインは、ウェブビューのクラッシュ後に回復を検出します。クラッシュの根本原因は防ぐものではありません。
  • 回復したJavaScriptランタイムは新しいので、前のウェブビューのインメモリ状態はすでにこのAPIが発火したときに失われています。
  • 予定された再起動は reason: 'periodicRestart'手動の再起動は reason: 'manualRestart'未保存の状態を保存する前に、短い再起動間隔、cronスケジュール、または restartWebView().
  • restartCron 5つのフィールドのcron構文を使用して、デバイスのローカルタイムゾーンで、たとえば 0 3 * * * 毎日03:00の再起動を設定しないでください。両方のスケジュールを同時に設定すると、 restartCron がセットされている場合と restartIntervalMs が 0.
  • Androidでは、 didCrash と rendererPriorityAtExit 利用可能です。
  • iOS の場合、プラグインは appState ウェブビューのプロセスが終了したときに観察されます。手動と予定された再起動では、Capacitor ブリッジビューを再構築します。 WKWebView プラグインが作成されます。

真実の源

「真実の源」

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

「続けてください @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-crash」 @capgo/capacitor-webview-crash ネイティブメディアとインターフェイスの動作を計画し、接続する Capacitor @capgo/capacitor-webview-crash を使用 Capacitor @capgo/capacitor-webview-crash を使用 Capacitor @capgo/capacitor-live-activities を使用 Capacitor @capgo/capacitor-live-activities を使用 Capacitor @capgo/capacitor-live-activities Capacitor @capgo/capacitor-live-activities の実装詳細 Capacitor @capgo/capacitor-video-player を使用 Capacitor @capgo/capacitor-video-player を使用 Capacitor @capgo/capacitor-video-player Capacitor @capgo/capacitor-video-player の実装詳細