앱이 복구되면 다음 자바스크립트 런타임에서 노출하는 데 사용되는 네이티브 마커를 저장하는 플러그인이 있습니다. 이전 Capacitor 웹뷰 프로세스가 죽거나 재활용될 때, 그리고 앱이 복구되면 다음 자바스크립트 런타임에서 노출하는 데 사용되는 네이티브 마커를 저장하는 플러그인이 있습니다. 또한 네이티브 code에서 웹뷰를 다시 시작할 수 있습니다. 충돌, 일정 간격, cron 스케줄 또는 자바스크립트가 명시적으로 요청할 때. restartWebView()기기에서 장기간의 세션 동안 메모리 쌓임을 피하기 위해 키오스크, POS, 대시보드, 스캐너 및 시그니처 앱을 도와줍니다.
핵심 기능
‘핵심 기능’이라는 제목을 가진 섹션- 네이티브 충돌 재시작 - iOS 또는 Android에서 렌더러 프로세스가 죽었을 때 웹뷰를 다시 시작합니다.
- 예약된 재시작 - 네이티브 타이머를 사용하여 __CAPGO_KEEP_2__ 또는 wall-clock를 사용하여 __CAPGO_KEEP_3__을 재활용합니다.
restartIntervalMs수동 네이티브 재시작 - 자바스크립트가 페이지 리로드 없이 __CAPGO_KEEP_4__을 다시 시작할 수 있습니다.restartCron. - __CAPGO_KEEP_5__
restartWebView()__CAPGO_KEEP_6__ - Capacitor 설정을 입력하세요 - 공개
WebViewCrashPluginConfigforplugins.WebViewCrashincapacitor.config.ts. getPendingCrashInfo- __CAPGO_KEEP_0__를 저장한 원시적인 충돌 또는 재시작 마커를 반환하거나, 아무것도 대기 중이지 않으면.null- 앱이 상태를 복원한 후 저장된 마커를 삭제합니다.clearPendingCrashInfo- 로컬에서 회복 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.simulateCrashRecovery- 충돌 마커와 원시적인 재시작 마커 모두에 대해 발생합니다.addListener__CAPGO_KEEP_0__webViewRestoredAfterCrash제목이 “__CAPGO_KEEP_0__”인 섹션webViewRestoredAfterRestart__CAPGO_KEEP_0__
API
API| 메서드 | 설명 |
|---|---|
getPendingCrashInfo | native crash 또는 restart 마커를 저장하고 반환하거나 null nothing이 pending되지 않았을 때 |
clearPendingCrashInfo | 앱이 상태를 복원한 후 저장된 마커를 삭제합니다. |
simulateCrashRecovery | 테스트를 위해 로컬에서 recovery 흐름을 테스트할 수 있도록 fake crash 마커를 생성합니다. |
restartWebView | __CAPGO_KEEP_0__를 새 WebView를 생성하도록 native로 요청하고 기록합니다. reason: 'manualRestart' code를 새 WebView를 생성하도록 native로 요청하고 기록합니다. |
addListener | listener가 첨부되고 일치하는 마커가 아직 pending되었을 때 webViewRestoredAfterCrash listener를 모두 제거합니다. webViewRestoredAfterRestart 메서드 |
removeAllListeners | 설명 |
Config Type
Config Type 섹션Capacitor의 기능을 확장하는 플러그인은 Capacitor의 PluginsConfig 타입이 지정된 WebViewCrash 설정 항목을 추가합니다:
export interface WebViewCrashPluginConfig { restartOnCrash?: boolean; restartIntervalMs?: number; restartCron?: string; restartAfterCrashDelayMs?: number;}Notes
Notes 섹션- 이 플러그인은 WebView 충돌 후 복구를 감지합니다. 충돌을 예방하는 것은 아닙니다.
- API이 발생할 때 이전 WebView의 메모리 내 상태는 이미 사라집니다.
- 예약된 재시작은
reason: 'periodicRestart'; 수동 재시작은reason: 'manualRestart'. __CAPGO_KEEP_0__를 저장하지 않은 상태에서 짧은 재시작 간격, cron 스케줄, 또는 호출하기 전에 저장하세요.restartWebView(). restartCron장치의 지역 시간대에서 5-field cron 문법을 사용합니다. 예를 들어, 매일 03:00에 재시작합니다.0 3 * * *Android에서, native 초기화는 __CAPGO_KEEP_0__와 __CAPGO_KEEP_1__이 설정되어 있고 __CAPGO_KEEP_1__이 __CAPGO_KEEP_2__보다 클 때 치명적인 구성 오류를 발생시킵니다.restartCroniOS에서, 플러그인은 종료된 WebView 프로세스가 관찰될 때 __CAPGO_KEEP_0__를 기록합니다.restartIntervalMsAndroid에서, __CAPGO_KEEP_3__과 __CAPGO_KEEP_4__와 같은 추가 필드가 사용할 수 있습니다.0.- iOS에서, 플러그인은 __CAPGO_KEEP_5__를 기록합니다.
didCrash자동 및 예약된 재시작은 __CAPGO_KEEP_0__ 브리지 뷰를 재구성하여 새로운 __CAPGO_KEEP_0__를 생성합니다.rendererPriorityAtExitSource Of Truth - __CAPGO_KEEP_0__
appStatewhen the terminated WebView process is observed. Manual and scheduled restarts rebuild the Capacitor bridge view so a newWKWebView__CAPGO_KEEP_2__
__CAPGO_KEEP_3__
Section titled “Source Of Truth”This reference is synced from src/definitions.ts in capacitor-웹뷰 충돌.
Keep going from @capgo/capacitor-웹뷰 충돌
Section titled “Keep going from @capgo/capacitor-웹뷰 충돌”만약에 네이티브 미디어 및 인터페이스 동작을 계획하고 있다면 @capgo/capacitor-웹뷰 충돌 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-웹뷰 충돌 @capgo/capacitor-웹뷰 충돌 @capgo/capacitor-라이브 활동 Using @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를 사용하는 경우