본문 바로가기

@capgo/capacitor-webview-crash

크래시된 WebView를 네이티브로 재시작하고, 실행 중인 WebView를 일정 간격으로 재활용합니다

크래시된 WebView를 네이티브로 재시작하고, 실행 중인 WebView를 일정 간격으로 재활용합니다

다음으로 시작하세요 getPendingCrashInfo() 그리고 아래에 나열된 다른 핵심 메서드도 살펴보세요.

플랫폼지원참고 사항
iOS지원네이티브
Android지원Native
웹부분적시작하기 가이드 참조
  • Native crash restart - 렌더러 프로세스가 종료될 때 iOS 또는 Android에서 WebView를 재시작합니다.
  • Scheduled restart - 네이티브 타이머를 사용하여 장시간 실행 중인 WebView를 재활용합니다. restartIntervalMs 또는 실제 시각을 기준으로 restartCron.
  • Manual native restart - JavaScript에서 페이지 새로고침 없이 restartWebView() 새로운 native WebView를 요청할 수 있습니다.
  • 타입이 지정된 Capacitor 설정 - 제공합니다 WebViewCrashPluginConfig 용 plugins.WebViewCrash 에서 capacitor.config.ts.
  • getPendingCrashInfo - 저장된 네이티브 crash 또는 restart 마커를 반환하거나, null 대기 중인 항목이 없을 때 사용합니다.
  • clearPendingCrashInfo - 앱이 상태를 복구한 후 저장된 마커를 삭제합니다.
  • simulateCrashRecovery - 복구 프로세스를 로컬에서 테스트할 수 있도록 가짜 crash 마커를 생성합니다.
  • addListener - Fires webViewRestoredAfterCrash crash 마커용, webViewRestoredAfterRestart 모든 네이티브 restart 마커용.
메서드설명
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;
}

참고 사항

“Notes” 섹션
  • 이 플러그인은 WebView 크래시 발생 후 복구 상태를 감지합니다. 근본적인 크래시 자체를 방지하지는 않습니다.
  • 복구된 JavaScript 런타임은 새로운 상태이므로, 이 API가 실행될 때 이전 WebView의 인메모리 상태는 이미 소실된 상태입니다.
  • 예약된 재시작은 reason: 'periodicRestart'수동 재시작은 reason: 'manualRestart'짧은 재시작 간격이나 cron 스케줄을 활성화하거나 호출하기 전에 저장되지 않은 상태를 반드시 유지(persist)하세요. restartWebView().
  • restartCron 기기 로컬 시간대를 기준으로 5개 필드 cron 구문을 사용합니다. 예: 0 3 * * * 매일 03:00에 재시작하는 경우. 두 스케줄을 동시에 설정하지 마세요. 다음 조건이 충족되면 native initialization 시 치명적인 설정 오류가 발생합니다: restartCron 설정되어 있으며 restartIntervalMs 보다 큼 0.
  • Android의 경우, 다음과 같은 추가 필드가 포함됩니다: didCrash 및 rendererPriorityAtExit 사용 가능할 수도 있습니다.
  • iOS에서 플러그인은 appState 종료된 WebView 프로세스가 감지되었을 때를 기록합니다. 수동 또는 예약된 재시작은 Capacitor bridge view를 다시 빌드하여 새로운 WKWebView 생성되었습니다.

이 레퍼런스는 다음에서 동기화됩니다. src/definitions.ts 에서 capacitor-webview-crash.

@capgo/capacitor-webview-crash 다음 단계

“@capgo/capacitor-webview-crash 다음 단계” 섹션

사용 중이라면 @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 @capgo/capacitor-video-player.의 구현 세부 사항