내용으로 바로가기

@capgo/capacitor-웹뷰 충돌

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

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

  • 네이티브 충돌 재시작 - iOS 또는 Android에서 렌더러 프로세스가 죽었을 때 웹뷰를 다시 시작합니다.
  • 예약 재시작 - 네이티브 타이머를 사용하여 __CAPGO_KEEP_2__ 또는 __CAPGO_KEEP_3__ 시간을 사용하여 오랜 시간 동안 실행되는 웹뷰를 재활용합니다. restartIntervalMs 수동 네이티브 재시작 - JavaScript가 새로운 네이티브 웹뷰를 요청할 때 웹뷰를 다시 시작합니다. restartCron.
  • __CAPGO_KEEP_2__ restartWebView() 페이지 리로드 없이도.
  • Capacitor을 입력한 유형 - 노출 WebViewCrashPluginConfig for plugins.WebViewCrash in capacitor.config.ts.
  • getPendingCrashInfo - __CAPGO_KEEP_0__을 저장한 원시적인 충돌 또는 재시작 마커를 반환하거나 null - 앱이 상태를 복원한 후 저장된 마커를 지웁니다.
  • clearPendingCrashInfo - 로컬에서 회복 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.
  • simulateCrashRecovery - 충돌 마커와
  • addListener - Fires webViewRestoredAfterCrash 공개 __CAPGO_KEEP_0__ webViewRestoredAfterRestart native 재시작 마커에 대해ใด든지
메서드설명
getPendingCrashInfo저장된 네이티브 충돌 또는 재시작 마커를 반환하거나 null nothing이 대기 중일 때.
clearPendingCrashInfo앱이 상태를 복원한 후 저장된 마커를 삭제합니다.
simulateCrashRecovery로컬에서 회복 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.
restartWebViewwrites reason: 'manualRestart' native code에게 새로운 WebView를 생성하기 위해 물어봅니다.
addListenerfires webViewRestoredAfterCrash 또는 webViewRestoredAfterRestart 또는
removeAllListeners모든 플러그인 리스너를 제거합니다.

이 플러그인은 Capacitor의 PluginsConfig 타입된 WebViewCrash 구성 항목:

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • 이 플러그인은 WebView 충돌 후 복구를 감지합니다. 충돌을 방지하지는 않습니다.
  • 재생성된 자바스크립트 런타임은 새로운 것이므로 이전 WebView의 메모리 내 상태는 이 API이 발생할 때 이미 사라져 있습니다.
  • 예약된 재시작은 reason: 'periodicRestart'자동 재시작을 통해 reason: 'manualRestart' persist하지 않은 상태를 저장하기 전에 짧은 재시작 간격, cron 스케줄, 또는 restartWebView().
  • restartCron 장치의 지역 시간대에서 5 필드 cron 구문 사용, 예를 들어 0 3 * * * 일일 03:00 재시작을 위해 restartCron Android에서, 추가 필드인 restartIntervalMs 및 0.
  • iOS에서, 플러그인은 didCrash and rendererPriorityAtExit 수동 및 예약된 재시작으로 __CAPGO_KEEP_0__ bridge view를 재구성하여 새로운
  • 생성합니다. appState 웹뷰 프로세스가 종료되면 관찰됩니다. 수동 및 예약된 재시작은 Capacitor 브릿지 뷰를 재구성하여 새로운 WKWebView is

이 참조는 __CAPGO_KEEP_0__-webview-crash에서 동기화되었습니다. src/definitions.ts 에서 capacitor-webview-crash.

capgo/capacitor-webview-crash에서 계속

‘capgo/capacitor-webview-crash에서 계속’ 섹션

Capgo를 사용하여 네이티브 미디어 및 인터페이스 동작을 계획하고 있다면 capgo/capacitor-webview-crash __CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-crash와 연결하세요. @capgo/capacitor-웹뷰 충돌 Capgo를 사용하여 네이티브 미디어 및 인터페이스 동작을 계획하고 있다면 @capgo/capacitor-webview-crash를 사용하세요. @capgo/capacitor-live-activities native 기능을 위해 @capgo/capacitor-live-activities를 사용합니다. @capgo/capacitor-라이브-활동 native 기능을 위해 @capgo/capacitor-live-activities를 사용합니다. @capgo/capacitor-video-player native 기능을 위해 Using @capgo/capacitor-video-player를 사용합니다. @capgo/capacitor-video-player implementation 세부사항을 위해 @capgo/capacitor-video-player를 사용합니다.