본문으로 바로가기
@capgo/capacitor-웹뷰 충돌 인증 및 보안 오픈 소스

웹뷰 충돌 Capacitor 플러그인

자연스럽게 충돌한 웹뷰를 재시작하고 고정 간격으로 오랜 시간 동안 실행되는 웹뷰를 재활용합니다.

설치

bun add @capgo/capacitor-webview-crash bunx cap sync
npm, pnpm 또는 yarn
  • npm install @capgo/capacitor-webview-crash
  • pnpm add @capgo/capacitor-webview-crash
  • yarn add @capgo/capacitor-webview-crash

가이드

웹뷰 충돌을 사용하는 방법 Capacitor

장치에서 테스트

Capgo 앱을 다운로드하고 QR code를 스캔하세요.

웹뷰 충돌 플러그인 미리보기 QR code

@capgo/capacitor-webview-crash 사용

웹뷰 충돌을 감지하고 죽은 웹뷰를 재시작하고, 메모리 압박이 OOM이 될 때까지 정해진 간격으로 오래된 웹뷰를 재활용합니다.

설치

npm install @capgo/capacitor-webview-crash
npx cap sync

이 플러그인은 다음을 제공합니다.

  • iOS 및 Android에서 WebView가 충돌했을 때 Native 재시작
  • 일주일 이상 실행되는 키오스크, POS, 디스플레이, 스캐너 및 대시보드 앱을 위한 고정 간격 Native WebView 재시작
  • restartWebView - JavaScript가 새 Native WebView를 요청할 수 있도록합니다. 페이지 리로드 없이.
  • WebViewCrashPluginConfig 타입 plugins.WebViewCrash Capacitor 웹뷰 충돌 옵션 capacitor.config.ts.
  • getPendingCrashInfo - 저장된 네이티브 충돌 또는 재시작 마커를 반환하거나 null message key `compare_capawesome_step2_text` (Compare Capawesome Step2 Text).
  • clearPendingCrashInfo - 저장된 Native 충돌 또는 재시작 마커를 반환하거나
  • simulateCrashRecovery nothing이 대기 중일 때.
  • webViewRestoredAfterCrash - 앱이 상태를 복원한 후 저장된 마커를 삭제합니다.
  • webViewRestoredAfterRestart - 로컬에서 회복 흐름을 테스트할 수 있도록 가짜 충돌 마커를 생성합니다.

사용 예제

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);
}

자연 재시작

재시작 동작을 구성하여 capacitor.config.ts 자바스크립트가 사용할 수 없는 경우에도 계속 작동하도록 하세요:

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;

예약된 재시작은 reason: 'periodicRestart'. Use restartIntervalMs 장치 지역 시간대에서 restartCron 일일 03:00 재시작을 위해 0 3 * * * 두 가지 예약을 동시에 구성하지 마세요: restartCron 가 설정되어且 restartIntervalMs 보다 크면 0자연 초기화는 치명적인 구성 오류를 발생시킵니다.

수동 네이티브 재시작

호출 restartWebView() JavaScript가 네이티브 WebView를 예방적으로 대체해야 하는 경우, 예를 들어 메모리 집약적인 워크플로우 후:

await WebViewCrash.restartWebView();

메서드는 reason: 'manualRestart' 그리고 네이티브 code에게 새로운 WebView를 생성하도록 요청합니다. Android는 호스트 활동을 재생성하고 iOS는 Capacitor 브리지를 다시 빌드하여 새로운 WKWebView 전체 참조

__CAPGO_KEEP_0__:

@capgo/capacitor-웹뷰 충돌

Manual Native Restart Capacitor-웹뷰-크래시를 사용하여 @capgo/capacitor-웹뷰-크래시 자연스러운 미디어 및 인터페이스 동작을 계획하고 @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-웹뷰-크래시와 연결 @capgo/capacitor-웹뷰 충돌 @capgo/capacitor-웹뷰 충돌 Getting Started Getting Started의 구현 세부 사항 Capacitor-라이브-액티비티를 사용하여 @capgo/capacitor-라이브-액티비티 native 기능을 위한 @capgo/capacitor-live-activities @capgo/capacitor-라이브-활동 @capgo/capacitor-라이브-활동 Capacitor-비디오-플레이어를 사용하여 @capgo/capacitor-비디오-플레이어 native 기능을 위한 @capgo/capacitor-video-player를 사용합니다.

FAQ

대을소시의세요요세요세요세요세요세요세요세요세요

웹뷰 충돌 플러그인을 Capacitor 앱에 어떻게 설치하나요?

Run "bun add @capgo/capacitor-webview-crash" (또는 "npm install @capgo/capacitor-webview-crash"), 그리고 "bunx cap sync" 명령어를 실행하여 iOS 및 Android 프로젝트가 네이티브 code를 인식하도록 하세요. 그리고 앱 code에서 "@capgo/capacitor-webview-crash"를 임포트하세요.

React, Vue 및 Angular과 함께 @capgo/capacitor-webview-crash가 작동하나요?

Yes. WebView Crash is a Capacitor package, so it works with any web framework that runs inside Capacitor, including Ionic, React, Vue, Angular, Svelte and plain JavaScript.

어떤 Capacitor 버전이 @capgo/capacitor-webview-crash를 지원하나요?

Capgo plugins follow Capacitor's major version: use the plugin major version that matches your Capacitor major version (for example plugin v8 with Capacitor 8). The compatibility table in the GitHub README lists the maintained versions.

Is @capgo/capacitor-webview-crash 무료이며 오픈 소스인가요?

Yes. The source code is public on GitHub at https://github.com/Cap-go/capacitor-webview-crash/ and the package is free to install from npm. Bug reports and pull requests are welcome.

code가 WebView Crash를 사용하는 경우 App Store 리뷰 없이 업데이트가 가능한가요?

네. 플러그인을 설치하거나 업그레이드하면 네이티브 code가 변경되므로, 새로운 스토어 빌드를 생성해야 합니다. 그 후에 JavaScript, HTML 및 CSS 변경 사항이 플러그인을 호출하는 경우 Capgo Live Update를 통해 즉시 배포할 수 있습니다.

앱 리뷰 기다리지 않고 WebView Crash 변경을 배포하세요

플러그인을 스토어 빌드에 추가한 후 Capgo에서 라이브 업데이트 기능을 사용하면, 사용자에게 몇 분만에 JavaScript, HTML 및 CSS 변경 사항을 푸시할 수 있습니다.

Capgo로 시작하세요