このプラグインは、前の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.WebViewCrashincapacitor.config.ts. getPendingCrashInfo何も待っていないときはnull- アプリが状態を復元した後、ストレージされたマーカーをクリアします。clearPendingCrashInfo- ローカルでテストできるように回復フローをテストするために、偽のクラッシュマーカーを作成します。simulateCrashRecoveryscheduled restart - Nativeタイマーを使用して長時間実行中のWebViewを回収するaddListener- 例外発生webViewRestoredAfterCrash- native再起動マーカーもwebViewRestoredAfterRestart- どのnative再起動マーカーも
Public API
Public API| メソッド | 説明 |
|---|---|
getPendingCrashInfo | native crashまたはrestartマーカーを取得します。 null native crashまたはrestartマーカーが存在しない場合、または |
clearPendingCrashInfo | native crashまたはrestartマーカーが存在しない場合、または |
simulateCrashRecovery | native crashまたはrestartマーカーが存在しない場合、または |
restartWebView | Writes reason: 'manualRestart' Native code において、WebView を新しく作成するように求める。 |
addListener | Fires 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(). restartCron5つのフィールドのcron構文を使用して、デバイスのローカルタイムゾーンで、たとえば0 3 * * *毎日03:00の再起動を設定しないでください。両方のスケジュールを同時に設定すると、restartCronがセットされている場合とrestartIntervalMsが0.- Androidでは、
didCrashとrendererPriorityAtExit利用可能です。 - iOS の場合、プラグインは
appStateウェブビューのプロセスが終了したときに観察されます。手動と予定された再起動では、Capacitor ブリッジビューを再構築します。WKWebViewプラグインが作成されます。
真実の源
「真実の源」この参照は src/definitions.ts からsynced capacitor-webview-crash.
@capgo/capacitor-webview-crash
続けてください @capgo/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 の実装詳細