개요
“개요” 섹션크래시된 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- FireswebViewRestoredAfterCrashcrash 마커용,webViewRestoredAfterRestart모든 네이티브 restart 마커용.
공개 API
“Public API” 섹션| 메서드 | 설명 |
|---|---|
getPendingCrashInfo | 저장된 네이티브 크래시 또는 재시작 마커를 반환하거나, null 대기 중인 항목이 없을 때 호출됩니다. |
clearPendingCrashInfo | 앱이 상태를 복구한 후 저장된 마커를 삭제합니다. |
simulateCrashRecovery | 복구 프로세스를 로컬에서 테스트할 수 있도록 가짜 크래시 마커를 생성합니다. |
restartWebView | 기록하고 reason: 'manualRestart' 네이티브 code에 새로운 WebView 생성을 요청합니다. |
addListener | 발생시키며, webViewRestoredAfterCrash 또는 webViewRestoredAfterRestart 리스너가 연결되어 있고 일치하는 마커가 대기 중일 때 실행됩니다. |
removeAllListeners | 모든 플러그인 리스너를 제거합니다. |
설정 유형
“Config Type” 섹션이 플러그인은 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생성되었습니다.
Source of Truth
“Source Of Truth” 섹션이 레퍼런스는 다음에서 동기화됩니다. 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.의 구현 세부 사항