Skip to content

@capgo/capacitor-webview-crash

긴 시간 동안 실행되는 Capacitor 앱을 위한 네이티브 웹뷰 충돌 복구, 수동 재시작 및 예약된 웹뷰 회수.

Capacitor의 이전 WebView 프로세스가 죽거나 재활용될 때 native 마커를 저장하고, 앱이 복구된 후에 다음 JavaScript 런타임에 그 마커를 노출합니다. 앱이 재시작될 때 WebView를 native code에서 다시 시작할 수도 있습니다. 또한 JavaScript가 명시적으로 요청하면 WebView를 native code에서 다시 시작할 수 있습니다. restartWebView()장기적인 세션 동안 메모리 쌓임을 피하기 위해 키오스크, POS, 대시보드, 스캐너, 및 시그니처 앱을 위한 도움이 됩니다.

  • native 충돌 재시작 - iOS 또는 Android에서 renderer 프로세스가 죽었을 때 WebView를 다시 시작합니다.
  • 예약된 재시작 - native 타이머를 사용하여 wall-clock 또는 cron 스케줄에 따라 long-running WebViews를 재활용합니다. restartIntervalMs 수동 native 재시작 - JavaScript가 페이지 리로드 없이 fresh native WebView를 요청할 수 있습니다. restartCron.
  • native __CAPGO_KEEP_1__ restartWebView() native __CAPGO_KEEP_1__
  • Capacitor 설정을 입력하세요 - 공개 WebViewCrashPluginConfig for plugins.WebViewCrash in capacitor.config.ts.
  • getPendingCrashInfo __CAPGO_KEEP_0__를 저장한 원시적인 충돌 또는 재시작 마커를 반환하거나, null nothing이 대기 중일 때.
  • clearPendingCrashInfo __CAPGO_KEEP_0__를 저장한 마커를 앱이 상태를 복원한 후 삭제합니다.
  • simulateCrashRecovery __CAPGO_KEEP_0__를 생성하여 로컬에서 회복 흐름을 테스트할 수 있도록 가짜 충돌 마커를 만듭니다.
  • addListener 충돌 마커와 webViewRestoredAfterCrash 원시적인 재시작 마커를 위한 webViewRestoredAfterRestart __CAPGO_KEEP_0__

제목이 “API”인 섹션

Public API
메소드설명
getPendingCrashInfonative crash 또는 restart 마커를 저장하고 반환하거나 null nothing이 pending일 때
clearPendingCrashInfo앱이 상태를 복원한 후 저장된 마커를 삭제합니다.
simulateCrashRecovery테스트를 위해 로컬에서 recovery 흐름을 테스트할 수 있도록 fake crash 마커를 생성합니다.
restartWebViewnative __CAPGO_KEEP_0__에게 WebView를 새로 생성하도록 요청하고 기록합니다. reason: 'manualRestart' and asks native code to create a fresh WebView.
addListenerlistener가 첨부되고 일치하는 마커가 아직 pending일 때 webViewRestoredAfterCrash 모든 플러그인 리스너를 삭제합니다. webViewRestoredAfterRestart 설명
removeAllListeners설명

Capacitor의 플러그인은 Capacitor의 PluginsConfig 형식화된 WebViewCrash 구성 항목을 추가합니다.

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • 이 플러그인은 WebView 충돌 후 복구를 감지합니다. 충돌을 예방하는 것은 아닙니다.
  • API이 발생할 때 이전 WebView의 메모리 상태는 이미 사라집니다.
  • 예약된 재시작은 reason: 'periodicRestart'; 수동 재시작은 reason: 'manualRestart'. 저장되지 않은 상태를 재시작 간격, cron 스케줄, 또는 호출하기 전에 저장하세요. restartWebView().
  • restartCron 5 필드 cron 구문이 사용되며 기기 로컬 시간대에서 예를 들어 매일 03:00에 재시작합니다. 0 3 * * * Android에서 두 가지 스케줄을 동시에 구성하지 마십시오: native 초기화는 restartCron 이 설정이 restartIntervalMs 보다 큰 경우 치명적인 config 오류를 발생시킵니다. 0.
  • iOS에서 추가 필드인 didCrashrendererPriorityAtExit 가 사용할 수 있습니다.
  • iOS에서 플러그인은 종료된 WebView 프로세스가 관찰될 때 appState when the terminated WebView process is observed. Manual and scheduled restarts rebuild the Capacitor bridge view so a new WKWebView 수동 및 예약된 재시작은 __CAPGO_KEEP_0__ 브리지 뷰를 재구성하여 새로운

를 생성합니다.

Source Of Truth

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

Keep going from @capgo/capacitor-webview-crash

Keep going from @capgo/capacitor-webview-crash

Capacitor를 사용 중이라면 @capgo/capacitor-webview-crash Capacitor를 __CAPGO_KEEP_0__/__CAPGO_KEEP_1__-webview-crash와 연결하세요. Capacitor를 capgo/capacitor-live-activities와 함께 사용하세요. Capacitor를 capgo/capacitor-live-activities에서 사용하세요. Capacitor를 capgo/capacitor-live-activities에서 사용하세요. capgo의 원생 기능을 위한 Using @capacitor/__CAPGO_KEEP_2__-live-activities, @capgo/capacitor-live-activities capgo의 구현 세부사항을 위한 @capacitor/__CAPGO_KEEP_2__-live-activities, Using @capgo/capacitor-video-player capgo의 원생 기능을 위한 Using @capacitor/__CAPGO_KEEP_2__-video-player, and @capgo/capacitor-video-player capgo의 구현 세부사항을 위한 @capacitor/__CAPGO_KEEP_2__-video-player.