Using @capgo/capacitor-webview-crash
__CAPGO_KEEP_1__
설치
npm install @capgo/capacitor-webview-crash
npx cap sync
이 플러그인은 다음을 제공합니다.
- iOS 및 Android에서 WebView가 충돌했을 때 네이티브 재시작.
- 일주일 이상 작동하는 키오스크, POS, 디스플레이, 스캐너 및 대시보드 앱을 위한 고정 간격의 네이티브 WebView 재시작.
restartWebView- JavaScript가 페이지 리로드 없이 새로운 네이티브 WebView를 요청할 수 있습니다.WebViewCrashPluginConfig- 종류plugins.WebViewCrashoption incapacitor.config.ts.getPendingCrashInfo- 네이티브 충돌 또는 재시작 마커가 저장되어 있는지 여부를 반환하거나nullnothing이 pendig되지 않았을 때clearPendingCrashInfo- 앱이 상태를 복원한 후 마커를 지우세요.simulateCrashRecovery- 로컬에서 회복 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.webViewRestoredAfterCrash- 네이티브 재시작 마커가 여전히 pendig되어 있는 recovered runtime에서 발생하는 리스너 이벤트.webViewRestoredAfterRestart- __CAPGO_KEEP_0__ 이벤트가 발생할 때 JavaScript가 사용할 수 없는 경우에도 계속 작동하도록 하기 위해 __CAPGO_KEEP_1__ 설정을 구성합니다.
예시 사용
import { WebViewCrash } from '@capgo/capacitor-webview-crash';
await WebViewCrash.addListener('webViewRestoredAfterCrash', async (info) => {
console.log('Recovered after a WebView crash', info);
await WebViewCrash.clearPendingCrashInfo();
});
await WebViewCrash.addListener('webViewRestoredAfterRestart', async (info) => {
console.log('Recovered after a native WebView restart', info);
await WebViewCrash.clearPendingCrashInfo();
});
const pending = await WebViewCrash.getPendingCrashInfo();
// Note: the listener callback may have already cleared the pending marker.
if (pending.value) {
console.log('Pending crash or restart marker', pending.value);
}
자연어 자동 재시작
__CAPGO_KEEP_2__에서 __CAPGO_KEEP_3__을 구성하여 capacitor.config.ts __CAPGO_KEEP_4__을 사용하여 __CAPGO_KEEP_5__ 또는 __CAPGO_KEEP_6__을 사용하여 __CAPGO_KEEP_7__을 설정합니다. 예를 들어 __CAPGO_KEEP_8__은 __CAPGO_KEEP_9__에 해당하는 __CAPGO_KEEP_10__의 __CAPGO_KEEP_11__을 의미합니다.
import type { CapacitorConfig } from '@capacitor/cli';
import type { WebViewCrashPluginConfig } from '@capgo/capacitor-webview-crash';
const webViewCrash: WebViewCrashPluginConfig = {
restartOnCrash: true,
restartCron: '0 3 * * *',
restartAfterCrashDelayMs: 0,
};
const config: CapacitorConfig = {
plugins: {
WebViewCrash: webViewCrash,
},
};
export default config;
__CAPGO_KEEP_12__을 사용하여 __CAPGO_KEEP_13__을 __CAPGO_KEEP_14__으로 설정합니다. reason: 'periodicRestart'정해진 간격으로 __CAPGO_KEEP_15__을 사용하거나 __CAPGO_KEEP_16__을 사용하여 __CAPGO_KEEP_17__을 __CAPGO_KEEP_18__에 설정합니다. restartIntervalMs __CAPGO_KEEP_19__이 __CAPGO_KEEP_20__보다 __CAPGO_KEEP_21__이면 __CAPGO_KEEP_22__이 __CAPGO_KEEP_23__을 __CAPGO_KEEP_24__합니다. restartCron 예시 0 3 * * * 자연어 자동 재시작 restartCron 자연어 자동 재시작 restartIntervalMs 자연어 자동 재시작 0. 앱의 중요한 상태를 저장하기 전에 짧은 스케줄을 사용하지 마십시오.
수동 네이티브 리스타트
Call restartWebView() JavaScript가 네이티브 WebView를 미리 교체해야 할 때, 예를 들어 메모리 집약적인 워크플로우 후에:
await WebViewCrash.restartWebView();
The method writes reason: 'manualRestart' 네이티브 code에게 새로운 WebView를 만들 것을 요청합니다. Android는 호스트 액티비티를 재생성합니다. iOS는 Capacitor 브리지 뷰를 재빌드하여 새로운 WKWebView 페이지가 대신 로드되는 대신 현재 페이지를 로드하지 않습니다.
전체 참조
- GitHub: https://github.com/Cap-go/capacitor-webview-crash/
- Docs: /docs/plugins/webview-crash/
@capgo/capacitor-webview-crash
만약에 @capgo/capacitor-webview-crash native 미디어와 인터페이스 동작을 계획하고 싶다면, @capgo/capacitor-webview-crash @capgo/capacitor-webview-crash Getting Started Getting Started @capgo/capacitor-live-activities @capgo/capacitor-live-activities @capgo/capacitor-live-activities Using @capgo/capacitor-video-player @capgo/capacitor-video-player native 기능을 위한 @capgo/capacitor-비디오 플레이어를 사용하세요.