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 のタイプ入力設定 -
WebViewCrashPluginConfigのplugins.WebViewCrashのcapacitor.config.ts. getPendingCrashInfo- 保存されたネイティブクラッシュまたは再起動マーカーを返します、または何も pendding ではありません。null- アプリが復元した状態の後、保存されたマーカーをクリアします。clearPendingCrashInfo- ローカルでリコバリー フローをテストするために、偽のクラッシュ マーカーを作成します。simulateCrashRecovery-addListener- FireswebViewRestoredAfterCrashクラッシュ マーカーとwebViewRestoredAfterRestartnative リスタート マーカー
Public API
セクション “Public API”| メソッド | 説明 |
|---|---|
getPendingCrashInfo | native クラッシュまたはリスタート マーカーを取得します。マーカーが存在しない場合は null アプリの状態を復元した後、保存されたマーカーをクリアします。 |
clearPendingCrashInfo | ローカルでリカバリ フローをテストするために、偽のクラッシュ マーカーを作成します。 |
simulateCrashRecovery | native __CAPGO_KEEP_0__ における WebView を作成し、作成した WebView を取得します。 |
restartWebView | native __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. |
removeAllListeners | Removes all plugin listeners. |
Config Type
Section titled “Config Type”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エラーを投げます。
didCrashAndroid上では、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の実装詳細のために