메인 콘텐츠로 바로가기

@capgo/capacitor-webview-crash

Capacitor 앱의 Native WebView 충돌 복구, 수동 재시작 및 장기 실행 Capacitor 앱의 WebView 회수.

이 플러그인은 이전 Capacitor 웹뷰 프로세스가 죽거나 재활용될 때 네이티브 마커를 저장하고, 앱이 복구된 후 JavaScript 런타임에 다음으로 노출합니다. 또한 JavaScript가 명시적으로 요청했을 때 또는 cron 스케줄 또는 고정 간격에 따라 네이티브 code에서 웹뷰를 다시 시작할 수 있습니다. restartWebView()기기에서 장기적인 세션 동안 메모리 쌓임을 피하기 위해 키오스크, POS, 대시보드, 스캐너 및 시그니지 앱을 위한 장점입니다.

  • 네이티브 충돌 재시작 - iOS 또는 Android에서 렌더러 프로세스가 죽었을 때 웹뷰를 다시 시작합니다.
  • 예약 재시작 - 네이티브 타이머를 사용하여 오랜 시간 동안 실행되는 WebView를 재활용합니다. restartIntervalMs 또는 벽시계 restartCron.
  • 수동 네이티브 재시작 - JavaScript가 페이지 리로드 없이 새로운 네이티브 WebView를 요청할 수 있도록 합니다. restartWebView() 페이지 리로드 없이
  • Capacitor 타입 설정 - exposes WebViewCrashPluginConfig for plugins.WebViewCrash in capacitor.config.ts.
  • getPendingCrashInfo 마커 가져오기 - 저장된 네이티브 충돌 또는 재시작 마커를 반환하거나, 아무것도 대기 중이지 않으면 null 앱이 상태를 복원한 후 저장된 마커를 삭제합니다.
  • clearPendingCrashInfo 로컬에서 회복 흐름을 테스트하기 위해 가짜 충돌 마커를 생성합니다.
  • simulateCrashRecovery 회복 흐름을 테스트하기 위해 로컬에서 가짜 충돌 마커를 생성합니다.
  • addListener 회복 흐름을 테스트하기 위해 로컬에서 가짜 충돌 마커를 생성합니다. webViewRestoredAfterCrash for 충돌 마커와 webViewRestoredAfterRestart for native 재시작 마커의 경우ใด든지.
메소드설명
getPendingCrashInfo저장된 native 충돌 또는 재시작 마커를 반환하거나 null nothing이 대기 중일 때는.
clearPendingCrashInfo앱이 상태를 복원한 후 저장된 마커를 삭제합니다.
simulateCrashRecovery로컬에서 회복 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.
restartWebView__CAPGO_KEEP_0__을 native로 호출하여 새로운 WebView를 생성하고 reason: 'manualRestart' 그리고 native code에게 요청합니다.
addListener소리가 발생합니다. webViewRestoredAfterCrash or webViewRestoredAfterRestart 리스너가 연결되고 일치하는 마커가 아직 대기 중일 때 발생합니다.
removeAllListeners모든 플러그인 리스너를 제거합니다.

플러그인은 Capacitor의 PluginsConfig 타입이 지정된 WebViewCrash 구성 항목을 확장합니다.

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • 이 플러그인은 WebView 충돌 후 복구를 감지합니다. 이 플러그인은 underlying 충돌을 방지하지 않습니다.
  • 복구된 JavaScript 런타임은 새로운 것이므로 이전 WebView의 메모리 내 상태는 이 API이 발생할 때 이미 사라집니다.
  • 예약된 재시작은 reason: 'periodicRestart'수동 재시작은 reason: 'manualRestart'Persist unsaved state before enabling short restart intervals, cron schedules, or calling restartWebView().
  • restartCron uses 5-field cron syntax in the device local timezone, for example 0 3 * * * daily 03:00 재시작을 위해 restartCron Do not configure both schedules at once: native initialization throws a fatal config error when restartIntervalMs is set and 0.
  • is greater than didCrash Android에서 추가 필드인 rendererPriorityAtExit and
  • iOS에서 플러그인은 종료된 WebView 프로세스가 관찰될 때 기록합니다. appState Capacitor를 수동 및 예약된 재시작으로 다시 빌드하여 새로운 WKWebView 생성됩니다.

이 참조는 src/definitions.ts 에서同步됩니다. capacitor-webview-crash.

@capgo/capacitor-webview-crash에서 계속하세요

‘@capgo/capacitor-webview-crash에서 계속하세요’라는 섹션

Capgo를 사용 중이라면 @capgo/capacitor-webview-crash native 미디어 및 인터페이스 동작을 계획하고 연결하세요. Using @capgo/capacitor-webview-crash native 기능을 사용하는 Using @capgo/capacitor-webview-crash Using @capgo/capacitor-live-activities native 기능을 사용하는 Using @capgo/capacitor-live-activities @capgo/capacitor-live-activities native 구현 세부 사항에 대한 @capgo/capacitor-live-activities Using @capgo/capacitor-video-player native 기능을 사용하는 Using @capgo/capacitor-video-player @capgo/capacitor-video-player native 구현 세부 사항에 대한 @capgo/capacitor-video-player.