概述
概述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()这有助于避免长时间会话期间的内存积累,适用于 kiosk、POS、仪表盘、扫描器和标牌应用
- __CAPGO_KEEP_1__
- 定时重启 - 使用本机定时器在长时间运行的 WebView 上循环
restartIntervalMs或墙钟restartCron. - 手动本机重启 - 让 JavaScript 请求一个新的本机 WebView
restartWebView()而不进行页面重载。 - 类型 Capacitor 配置 - exposing
WebViewCrashPluginConfig用于plugins.WebViewCrash在capacitor.config.ts. getPendingCrashInfo- 返回存储的本机崩溃或重启标记,或者null当没有任何标记时。clearPendingCrashInfo- 在应用程序恢复其状态后清除存储的标记。simulateCrashRecovery- 创建一个模拟崩溃标记,以便在本地测试恢复流程。addListener- 触发webViewRestoredAfterCrash用于崩溃标记和webViewRestoredAfterRestart用于任何本机重启标记。
公共 API
标题为“公共 API”的部分| 方法 | 描述 |
|---|---|
getPendingCrashInfo | 返回存储的本机崩溃或重启标记,或者 null 当没有待处理的标记时。 |
clearPendingCrashInfo | 清除存储的标记后,应用程序恢复其状态。 |
simulateCrashRecovery | 创建一个虚拟崩溃标记,以便在本地测试恢复流程。 |
restartWebView | 写入 reason: 'manualRestart' 并要求本机 code 创建一个新的 WebView。 |
addListener | Fires webViewRestoredAfterCrash 或 webViewRestoredAfterRestart 当一个监听器附加并且一个匹配的标记仍在等待时 |
removeAllListeners | 移除所有插件监听器 |
配置类型
配置类型该插件增强了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重启。不要同时配置两个调度:native初始化会抛出一个致命配置错误,当restartCron设置且restartIntervalMs大于0.- .
didCrash在Android上,额外的字段,如rendererPriorityAtExit和 - On iOS,插件记录
appState当终止的 WebView 过程被观察到时。手动和预定的重启重建了 Capacitor 桥接视图所以一个新的WKWebView是创建的。
真实来源
标题:真实来源这个参考是从 src/definitions.ts 在 capacitor-webview-crash.
从 @capgo/capacitor-webview-crash 中继续
标题:从 @capgo/capacitor-webview-crash 中继续如果您正在使用 @capgo/capacitor-webview-crash To plan native media and interface behavior, connect it with 使用 @capgo/capacitor-webview-crash 为 @capgo/capacitor-webview-crash 的原生能力 使用 @capgo/capacitor-live-activities 为 @capgo/capacitor-live-activities 的原生能力 @capgo/capacitor-live-activities 为 @capgo/capacitor-live-activities 的实现细节 使用 @capgo/capacitor-video-player 为使用 @capgo/capacitor-video-player 的原生能力 @capgo/capacitor-video-player 为 @capgo/capacitor-video-player 的实现细节