Skip to content

@capgo/capacitor-webview-crash

Capacitorアプリの長時間実行中の場合のネイティブ WebView のクラッシュ回復、手動再起動、および定期的なWebViewのリサイクル。

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

  • ネイティブのクラッシュ再起動 - iOSまたはAndroidのWebViewをレンダラー プロセスが死んだときに再起動します。
  • 予定された再起動 - 長時間実行中の WebView を使用するネイティブタイマーでリサイクルします。 restartIntervalMs または壁時計 restartCron.
  • 手動ネイティブ再起動 - JavaScript がページのリロードを行うことなく、最新のネイティブ WebView を要求します。 restartWebView() without doing a page reload.
  • Capacitor のタイプ入力設定 - WebViewCrashPluginConfigplugins.WebViewCrashcapacitor.config.ts.
  • getPendingCrashInfo - 保存されたネイティブクラッシュまたは再起動マーカーを返します、または何も pendding ではありません。 null - アプリが復元した状態の後、保存されたマーカーをクリアします。
  • clearPendingCrashInfo - ローカルでリコバリー フローをテストするために、偽のクラッシュ マーカーを作成します。
  • simulateCrashRecovery -
  • addListener - Fires webViewRestoredAfterCrash クラッシュ マーカーと webViewRestoredAfterRestart native リスタート マーカー
メソッド説明
getPendingCrashInfonative クラッシュまたはリスタート マーカーを取得します。マーカーが存在しない場合は null アプリの状態を復元した後、保存されたマーカーをクリアします。
clearPendingCrashInfoローカルでリカバリ フローをテストするために、偽のクラッシュ マーカーを作成します。
simulateCrashRecoverynative __CAPGO_KEEP_0__ における WebView を作成し、作成した WebView を取得します。
restartWebViewnative __CAPGO_KEEP_0__ における WebView を作成し、作成した WebView を取得します。 reason: 'manualRestart' native code における WebView を作成し、作成した WebView を取得します。
addListener Fires webViewRestoredAfterCrash or webViewRestoredAfterRestart when a listener attaches and a matching marker is still pending.
removeAllListenersRemoves all plugin listeners.

The plugin augments Capacitor’s PluginsConfig with a typed WebViewCrash config entry:

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 両方のスケジュールを同時に設定しないでください: native初期化は restartIntervalMs が設定されていて 0.
  • より大きい場合、fatal configエラーを投げます。 didCrash Android上では、 rendererPriorityAtExit などの追加フィールドが利用可能です。
  • iOSでは、プラグインは終了したWebViewプロセスが観測されたときに記録します。 appState 手動と予定された再起動では、Capacitor ブリッジビューを再構築するため、新しい WKWebView が作成されます。

真実の源

「真実の源」

この参照は src/definitions.ts からsyncされます。 capacitor-webview-crash.

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

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

あなたが @capgo/capacitor-webview-crash nativeメディアとインターフェイスの動作を計画し、接続するには @capgo/capacitor-webview-crashを使用する @capgo/capacitor-webview-crashのnative機能のために @capgo/capacitor-live-activitiesを使用する @capgo/capacitor-live-activitiesのnative機能のために @capgo/capacitor-live-activities @capgo/capacitor-live-activitiesの実装詳細のために @capgo/capacitor-video-playerを使用する @capgo/capacitor-video-playerのnative機能のために @capgo/capacitor-video-player @capgo/capacitor-video-playerの実装詳細のために