Skip to content

@capgo/capacitor-웹뷰 충돌

자연스러운 WebView 충돌 복구, 수동 재시작 및 스케줄된 WebView 회수는 오랜 시간 동안 실행되는 Capacitor 앱을위한 것입니다.

이 플러그인은 이전 Capacitor 웹뷰 프로세스가 죽거나 재활용될 때 native 마커를 저장하고, 앱이 복구된 후에 다음 자바스크립트 런타임에 그 마커를 노출합니다. 또한 충돌 후 웹뷰를 native code에서 재시작할 수 있습니다. 또한 자바스크립트가 명시적으로 요청할 때, 또는 cron 스케줄에 따라, 또는 고정 간격으로 충돌을 재시작할 수 있습니다. restartWebView()기본 기능

핵심 기능

Core Capabilities
  • iOS 또는 Android에서 렌더러 프로세스가 죽었을 때 WebView를 다시 시작합니다.
  • Scheduled restart - 장시간 실행 중인 WebView를 native 타이머를 사용하여 재활용합니다. restartIntervalMs or a wall-clock restartCron.
  • Manual native restart - JavaScript가 페이지를 다시 로드하지 않고 새로운 native WebView를 요청할 수 있습니다. restartWebView() __CAPGO_KEEP_0__ 설정 - exposes
  • Typed Capacitor config - Exposes WebViewCrashPluginConfig in plugins.WebViewCrash storedNativeCrashOrRestartMarker - 저장된 native crash 또는 restart 마커를 반환하거나, nothing이 pending일 때는 capacitor.config.ts.
  • getPendingCrashInfo storedMarker - 앱이 상태를 복원한 후 저장된 마커를 삭제합니다. null storedMarker
  • clearPendingCrashInfo storedMarker
  • simulateCrashRecovery - 로컬에서 복구 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.
  • addListener - 충돌 마커와 webViewRestoredAfterCrash for any native restart marker. webViewRestoredAfterRestart Public __CAPGO_KEEP_0__
설명기존에 저장된 네이티브 충돌 또는 재시작 마커를 반환하거나
getPendingCrashInfonothing이 pending일 때는 아무것도 반환하지 않습니다. null 앱이 상태를 복원한 후 저장된 마커를 삭제합니다.
clearPendingCrashInfo로컬에서 복구 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.
simulateCrashRecovery__CAPGO_KEEP_0__
restartWebViewWrites reason: 'manualRestart' 그리고 원시 code에게 새로운 WebView를 생성하도록 요청합니다.
addListenerFires webViewRestoredAfterCrash 또는 webViewRestoredAfterRestart 웹뷰가 충돌할 때 발생하는 문제를 해결하기 위해, 웹뷰 충돌을 감지하고
removeAllListeners웹뷰가 충돌할 때 발생하는 문제를 해결하기 위해, 웹뷰 충돌을 감지하고

Config Type

Config Type

이 플러그인은 Capacitor의 PluginsConfig 타입이 지정된 WebViewCrash 설정 항목을 추가합니다:

export interface WebViewCrashPluginConfig {
restartOnCrash?: boolean;
restartIntervalMs?: number;
restartCron?: string;
restartAfterCrashDelayMs?: number;
}
  • 웹뷰 충돌 복구를 감지합니다. 이 플러그인은 underlying 충돌을 방지하지 않습니다.
  • 이 API이 발생할 때, 이전 웹뷰의 메모리 상태는 이미 이전되었기 때문에, 새로 생성된 JavaScript 런타임은 이전의 메모리 상태를 가지고 있지 않습니다.
  • Scheduled restarts write reason: 'periodicRestart'; manual restarts write reason: 'manualRestart'. 저장되지 않은 상태를 저장하기 전에, 짧은 재시작 간격, cron 스케줄, 또는 restartWebView().
  • restartCron uses 5-field cron syntax in the device local timezone, for example 0 3 * * * daily 03:00 재시작을 위해 restartCron Android에서, extra fields such as restartIntervalMs is set and 0.
  • is greater than didCrash 그리고 rendererPriorityAtExit 가능합니다.
  • iOS에서 플러그인은 종료된 WebView 프로세스가 관찰될 때 기록합니다. appState 수동 및 예약된 재시작으로 Capacitor 브릿지 뷰를 재구성하여 새로운 WKWebView 진실의 근원

‘진실의 근원’이라는 제목의 섹션

이 참조는 __CAPGO_KEEP_0__에서同步됩니다.

in src/definitions.ts __CAPGO_KEEP_0__-webview-crash 계속 @capacitor/__CAPGO_KEEP_1__-webview-crash에서.

‘계속 @capgo/capacitor-webview-crash’이라는 제목의 섹션

Section titled “Keep going from @capgo/capacitor-webview-crash”

만약에 capgo/capacitor-webview-crash 자연스러운 미디어 및 인터페이스 동작을 계획하기 위해 Using @capgo/capacitor-webview-crash for the native capability in Using @capgo/capacitor-webview-crash, Using @capgo/capacitor-live-activities for the native capability in Using @capgo/capacitor-live-activities, @capgo/capacitor-live-activities for the implementation detail in @capgo/capacitor-live-activities, Using @capgo/capacitor-video-player capgo/capacitor-video-player capgo/capacitor-video-player {"targetLanguage":"Korean","pagePath":"/ko/docs/plugins/webview-crash/","protectedTokens":["Cloudflare","Capacitor","GitHub","Capgo","code","API","SDK","CLI","npm","bun"],"items":[{"text":"@capgo/capacitor-video-player 구현 세부 사항에 대해."},{"text":"페이지 편집"}]}