메인 콘텐츠로 건너뛰기

@capgo/capacitor-webview-crash

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

This plugin stores a native marker when the previous Capacitor WebView process dies or is recycled, then exposes that marker to the next JavaScript runtime after the app recovers. It can also restart the WebView from native code after a crash, on a fixed interval, on a cron schedule, or when JavaScript explicitly requests restartWebView()Section titled “기본 기능”

Native crash restart - iOS 또는 Android에서 renderer 프로세스가 죽었을 때 WebView를 다시 시작합니다.

Scheduled restart - long-running WebViews를 native 타이머를 사용하여 재활용합니다.
  • or a wall-clock
  • Manual native restart - JavaScript가 페이지를 다시 로드하지 않고 WebView를 native __CAPGO_KEEP_1__에서 다시 시작할 수 있습니다. restartIntervalMs __CAPGO_KEEP_1__ restartCron.
  • __CAPGO_KEEP_1__ restartWebView() __CAPGO_KEEP_1__
  • 타입 Capacitor 설정 - 노출 WebViewCrashPluginConfigplugins.WebViewCrashcapacitor.config.ts.
  • getPendingCrashInfo - 저장된 네이티브 충돌 또는 다시 시작 마커를 반환하거나, null - 아무것도 대기 중이지 않으면.
  • clearPendingCrashInfo - 앱이 상태를 복원한 후 저장된 마커를 삭제합니다.
  • simulateCrashRecovery - 로컬에서 회복 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.
  • addListener - 충돌 마커와 webViewRestoredAfterCrash - 네이티브 다시 시작 마커의 webViewRestoredAfterRestart 공개 __CAPGO_KEEP_0__

제목이 ‘공개 API’인 섹션

Section titled “Public API”
메소드설명
getPendingCrashInfo저장된 네이티브 충돌 또는 재시작 마커를 반환하거나 null nothing이 pendig일 때
clearPendingCrashInfo앱이 상태를 복원한 후 저장된 마커를 지웁니다.
simulateCrashRecovery로컬에서 회복 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.
restartWebViewwrites reason: 'manualRestart' native code에게 새로운 WebView를 생성하도록 요청합니다.
addListenerfires webViewRestoredAfterCrash listener가 첨부되고 일치하는 마커가 pendig일 때 webViewRestoredAfterRestart 모든 플러그인 리스너를 제거합니다.
removeAllListenersFires

Config Type

구성 유형

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

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

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

capgo에서 계속하기 @capacitor-webview-crash

Section titled “capgo에서 계속하기 @capacitor-webview-crash”

Capgo를 사용 중이라면 @capgo/capacitor-webview-crash __CAPGO_KEEP_0__를 __CAPGO_KEEP_1__-webview-crash와 연결하세요. capgo/capacitor-webview-crash를 사용하여 capgo/capacitor-webview-crash에서 native capability을 사용하세요. 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.