이벤트
이 플러그인의 설치 단계와 전체 마크다운 가이드를 포함한 설정 프롬프트를 복사하세요.
Capacitor 업데이터 플러그인은 업데이트 프로세스를 모니터링하고 다양한 상태에 반응하기 위해 듣기할 수 있는 여러 이벤트를 제공합니다.
이벤트 리스너 설정
제목이 '이벤트 리스너 설정'인 섹션이벤트를 듣기 위해 다음 메서드를 사용하세요. addListener 메서드를 사용하세요. CapacitorUpdater 클립보드에 복사
import { CapacitorUpdater } from '@capgo/capacitor-updater';
// Add a listenerconst listener = await CapacitorUpdater.addListener('eventName', (event) => { // Handle the event});
// Remove the listener when no longer neededlistener.remove();
// Remove all listenersawait CapacitorUpdater.removeAllListeners();이벤트 리스너를 설정하려면
사용 가능한 이벤트download
다운로드다운로드 프로세스 중 발생하는 이벤트입니다. 다운로드 진행 정보를 제공합니다.
CapacitorUpdater.addListener('download', (event) => { console.log(`Download progress: ${event.percent}%`); console.log('Bundle info:', event.bundle);});이벤트 데이터:
percent: 다운로드 진행률(0-100)bundle: 다운로드 중인 배포판 정보
noNeedUpdate
업데이트 필요 없음업데이트 확인 시 업데이트가 필요하지 않음을 결정할 때 발생합니다.
CapacitorUpdater.addListener('noNeedUpdate', (event) => { console.log('App is up to date'); console.log('Current bundle:', event.bundle);});이벤트 데이터:
bundle: BundleInfo - 현재 버전의 정보
updateAvailable
업데이트가 사용 가능한 경우다운로드가 완료되면 새로운 업데이트가 사용 가능한 경우
CapacitorUpdater.addListener('updateAvailable', (event) => { console.log('Update available'); console.log('New bundle:', event.bundle); // You can trigger a download here if needed});이벤트 데이터:
bundle: BundleInfo - 사용 가능한 업데이트 버전의 정보
downloadComplete
다운로드가 성공적으로 완료되면복사
CapacitorUpdater.addListener('downloadComplete', (event) => { console.log('Download completed'); console.log('Downloaded bundle:', event.bundle); // You might want to set this bundle as next});: BundleInfo - 다운로드가 완료된 버전의 정보
bundle: __CAPGO_KEEP_0__ - __CAPGO_KEEP_1__
majorAvailable
주제: __CAPGO_KEEP_0__주제가 설명하는 업데이트 중 가장 큰 업데이트가 사용자 설정의 자동 업데이트 설정으로 인해 차단되었을 때 발생합니다.
CapacitorUpdater.addListener('majorAvailable', (event) => { console.log('Major update available:', event.version); // Notify user about major update});이벤트 데이터:
version: string - 가장 큰 업데이트의 버전 번호
updateFailed
주제: __CAPGO_KEEP_0__업데이트가 다음 앱 시작 시 설치에 실패했을 때 발생합니다.
CapacitorUpdater.addListener('updateFailed', (event) => { console.error('Update failed to install'); console.log('Failed bundle:', event.bundle); // Handle rollback or retry logic});이벤트 데이터:
bundle: BundleInfo - 설치에 실패한 패키지에 대한 정보
downloadFailed
다운로드 실패다운로드 실패 시 발생하는 이벤트
CapacitorUpdater.addListener('downloadFailed', (event) => { console.error('Download failed for version:', event.version); // Handle download retry logic});이벤트 데이터:
version: string - 다운로드에 실패한 버전
appReloaded
앱 리로드앱이 리로드되었습니다.
CapacitorUpdater.addListener('appReloaded', () => { console.log('App has been reloaded'); // Perform any necessary reinitialization});: None protectedTokens
appReady
앱이 업데이트 후 사용할 준비가 되었을 때 발생하는 이벤트업데이트 후 앱이 사용할 준비가 되었을 때 발생합니다.
CapacitorUpdater.addListener('appReady', (event) => { console.log('App is ready'); console.log('Current bundle:', event.bundle); console.log('Status:', event.status);});이벤트 데이터:
bundle: BundleInfo - 현재 배포본에 대한 정보status: string - 준비 상태
BundleInfo 객체
배포본에 대한 정보많은 이벤트는 다음 속성을 가진 객체를 포함합니다. BundleInfo 속성을 복사하세요.
interface BundleInfo { id: string; // Unique bundle identifier version: string; // Bundle version downloaded: string; // Download timestamp checksum?: string; // Bundle checksum (if available) status: BundleStatus; // Bundle status}는 다음과 같습니다. BundleStatus - 업데이트 패키지가 성공적으로 다운로드되었습니다.
'success'- 업데이트 패키지 다운로드/설치가 실패했습니다.'error'- 업데이트 패키지가 다음으로 설정될 준비가 되었습니다.'pending'- 업데이트 패키지가 현재 다운로드 중입니다.'downloading'예시: 업데이트 흐름의 완전한 예
제목이 "예시: 업데이트 흐름의 완전한 예"인 섹션
이벤트를 처리하는 업데이트 흐름의 완전한 예를 보여줍니다.Copy to clipboard
import { CapacitorUpdater } from '@capgo/capacitor-updater';
export class UpdateManager { private listeners: any[] = [];
async setupListeners() { // Listen for available updates this.listeners.push( await CapacitorUpdater.addListener('updateAvailable', async (event) => { console.log('Update available:', event.bundle.version); // Auto-download the update await CapacitorUpdater.download({ url: event.bundle.url, version: event.bundle.version }); }) );
// Monitor download progress this.listeners.push( await CapacitorUpdater.addListener('download', (event) => { console.log(`Downloading: ${event.percent}%`); // Update UI progress bar this.updateProgressBar(event.percent); }) );
// Handle download completion this.listeners.push( await CapacitorUpdater.addListener('downloadComplete', async (event) => { console.log('Download complete:', event.bundle.version); // Set as next bundle await CapacitorUpdater.next({ id: event.bundle.id }); }) );
// Handle failures this.listeners.push( await CapacitorUpdater.addListener('downloadFailed', (event) => { console.error('Download failed:', event.version); this.showError('Update download failed. Please try again later.'); }) );
this.listeners.push( await CapacitorUpdater.addListener('updateFailed', (event) => { console.error('Update installation failed:', event.bundle.version); this.showError('Update installation failed. The app has been rolled back.'); }) );
// Handle app ready this.listeners.push( await CapacitorUpdater.addListener('appReady', async (event) => { console.log('App ready with bundle:', event.bundle.version); }) ); }
cleanup() { // Remove all listeners when no longer needed this.listeners.forEach(listener => listener.remove()); this.listeners = []; }
private updateProgressBar(percent: number) { // Update your UI progress bar }
private showError(message: string) { // Show error to user }}클립보드에 복사
최선의 방법-
‘최선의 방법’ 제목의 섹션
notifyAppReady()항상 호출하십시오 : 자동 업데이트 시 항상 앱 초기화 후에 이 메서드를 호출하여 롤백을 방지하세요. -
오류를 잘 처리하세요: 다운로드 및 업데이트 오류에 대한 올바른 오류 처리를 구현하세요.
-
사용자에게 피드백을 제공하세요: 다운로드 진행 이벤트를 사용하여 사용자에게 업데이트 진행 상황을 표시하세요.
-
리스너를 정리하세요: 더 이상 필요하지 않은 이벤트 리스너를 제거하여 메모리 누수를 방지하세요.
-
업데이트 시나리오를 테스트하세요: 다양한 업데이트 시나리오를 테스트하세요. 이에는 오류, 롤백, 및 주요 업데이트 포함됩니다.
계속하기
: Events 섹션 제목만약에 사용 중이라면 : Events native 플러그인 작업을 계획하기 위해, 그것을 연결하세요. Using @capgo/capacitor-업데이터 native 기능을 위한 Using @capgo/capacitor-업데이터 Capgo 플러그인 디렉토리 제품 워크플로우를 위한 Capgo 플러그인 디렉토리 Capacitor 플러그인들에 의해 Capgo implementation 세부사항을 위한 Capacitor 플러그인들에 의해 Capgo 플러그인을 추가하거나 업데이트 implementation 세부사항을 위한 플러그인을 추가하거나 업데이트, 그리고 Ionic Enterprise 플러그인 대체 제품 워크플로우를 위한 Ionic Enterprise 플러그인 대체