概述
概述部分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、仪表板、扫描器和标牌应用程序
- Native crash restart - iOS 或 Android 重启 WebView 当渲染进程死亡时。
- Scheduled restart - 使用 native 定时器在长时间运行的 WebView 上进行回收,使用
restartIntervalMs或墙钟restartCron. - Manual native restart - 允许 JavaScript 请求一个新的 native WebView
restartWebView()而不需要重新加载页面。 - Typed Capacitor config - exposing
WebViewCrashPluginConfig用于plugins.WebViewCrash在capacitor.config.ts. getPendingCrashInfogetNativeCrashMarker - 返回存储的 native crash 或重启标记,或者null当没有任何内容等待时。clearPendingCrashInfoclearNativeCrashMarker - 清除存储的标记后,应用程序恢复其状态。simulateCrashRecovery- 创建一个模拟崩溃标记,以便在本地测试恢复流程。addListener- 发送webViewRestoredAfterCrashfor 崩溃标记和webViewRestoredAfterRestartfor 本地重启标记。
公开API
标题:公开API| 方法 | 描述 |
|---|---|
getPendingCrashInfo | 返回存储的本机崩溃或重启标记,或者 null 当没有待处理的标记时。 |
clearPendingCrashInfo | 清除存储的标记后,应用程序恢复其状态。 |
simulateCrashRecovery | 创建一个模拟崩溃标记,以便在本地测试恢复流程。 |
restartWebView | 写入 reason: 'manualRestart' 并要求本地code创建一个新的WebView。 |
addListener | 触发 webViewRestoredAfterCrash 或 webViewRestoredAfterRestart 当一个监听器附加并且一个匹配的标记仍在等待时。 |
removeAllListeners | 移除所有插件监听器。 |
配置类型
标题:配置类型该插件增强了Capacitor的 PluginsConfig 具有一个类型化的 WebViewCrash 配置项:
export interface WebViewCrashPluginConfig { restartOnCrash?: boolean; restartIntervalMs?: number; restartCron?: string; restartAfterCrashDelayMs?: number;}- 此插件检测WebView崩溃后的恢复。它不会阻止底层崩溃。
- 恢复的JavaScript运行时是新的,因此在此API触发时,之前的WebView中的内存状态已经丢失了。
- 预定重启写入
reason: 'periodicRestart';手动重启写入reason: 'manualRestart'.在启用短重启间隔、cron计划或调用restartWebView(). restartCron使用5个字段的cron语法在设备本地时区中,例如0 3 * * *每天03:00重启。不要同时配置两个计划:native初始化会抛出一个致命配置错误,当restartCron设置并且restartIntervalMs大于0.- 在Android上,额外的字段,如
didCrash并且rendererPriorityAtExit可能可用。 - 在 iOS 上,插件记录
appState当终止的 WebView 过程被观察到时。手动和计划重启重建 Capacitor 桥视图,因此创建一个新的WKWebView真实来源
标题:真实来源
此参考从在 src/definitions.ts __CAPGO_KEEP_0__-webview-crash 继续阅读 @capacitor/__CAPGO_KEEP_1__-webview-crash.
标题:继续阅读 @capgo/capacitor-webview-crash
Section titled “Keep going from @capgo/capacitor-webview-crash”If you are using @capgo/capacitor-webview-crash 用于规划原生媒体和界面行为,连接它与 使用@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 {"targetLanguage":"Simplified Chinese","pagePath":"/zh/docs/plugins/webview-crash/","protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"items":[{"text":"@capgo/capacitor视频播放器的实现细节"},{"text":"编辑页面"}]}