Acara
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
The Capacitor Plugin Pembaruan menyediakan beberapa event yang dapat Anda dengarkan untuk memantau proses pembaruan dan bereaksi terhadap berbagai keadaan.
Pengaturan Pembarui Event
Bab berjudul “Pengaturan Pembarui Event”Untuk mendengarkan event, gunakan addListener metode pada objek: CapacitorUpdater Salinan ke clipboard
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();Salinan ke clipboard
Judul Bagian: “Event yang Tersedia”download
Judul Bagian: “download”Ditangkap selama proses download bundle. Memberikan informasi tentang kemajuan download.
CapacitorUpdater.addListener('download', (event) => { console.log(`Download progress: ${event.percent}%`); console.log('Bundle info:', event.bundle);});Data Event:
percent: Persentase kemajuan download (0-100)bundle: BundleInfo - Informasi tentang bundle yang sedang di download
noNeedUpdate
Judul Bagian: “tidakPerluUpdate”Ditangkap ketika periksa update menentukan bahwa tidak ada update yang diperlukan.
CapacitorUpdater.addListener('noNeedUpdate', (event) => { console.log('App is up to date'); console.log('Current bundle:', event.bundle);});Data Acara:
bundle: BundleInfo - Informasi tentang bundle saat ini
updateAvailable
Bagian berjudul “updateAvailable”Ditriggerkan ketika ada pembaruan baru yang tersedia untuk diunduh.
CapacitorUpdater.addListener('updateAvailable', (event) => { console.log('Update available'); console.log('New bundle:', event.bundle); // You can trigger a download here if needed});Data Acara:
bundle: BundleInfo - Informasi tentang bundle pembaruan yang tersedia
downloadComplete
Bagian berjudul “downloadComplete”Ditriggerkan ketika pengunduhan bundle telah selesai dengan sukses.
CapacitorUpdater.addListener('downloadComplete', (event) => { console.log('Download completed'); console.log('Downloaded bundle:', event.bundle); // You might want to set this bundle as next});Data Acara:
bundle: Informasi Bundle - Informasi tentang bundle yang diunduh
majorAvailable
Bagian berjudul “majorAvailable”Dipicu ketika ada pembaruan besar tersedia tetapi diblokir oleh pengaturan auto-update.
CapacitorUpdater.addListener('majorAvailable', (event) => { console.log('Major update available:', event.version); // Notify user about major update});Data Acara:
version: string - Nomor versi pembaruan besar
updateFailed
Bagian berjudul “updateFailed”Dipicu ketika pembaruan gagal terpasang pada aplikasi berikutnya.
CapacitorUpdater.addListener('updateFailed', (event) => { console.error('Update failed to install'); console.log('Failed bundle:', event.bundle); // Handle rollback or retry logic});Data Acara:
bundle: Informasi Paket - Informasi tentang paket yang gagal terpasang
downloadFailed
Bagian berjudul “downloadFailed”Terjadi ketika pengunduhan paket gagal.
CapacitorUpdater.addListener('downloadFailed', (event) => { console.error('Download failed for version:', event.version); // Handle download retry logic});Data Acara:
version: string - Versi yang gagal diunduh
appReloaded
Bagian berjudul “appReloaded”Terjadi ketika aplikasi telah di-reload.
CapacitorUpdater.addListener('appReloaded', () => { console.log('App has been reloaded'); // Perform any necessary reinitialization});Data Acara: None
appReady
Aplikasi siapDibebankan ketika aplikasi siap digunakan setelah diperbarui.
CapacitorUpdater.addListener('appReady', (event) => { console.log('App is ready'); console.log('Current bundle:', event.bundle); console.log('Status:', event.status);});Data Acara:
bundle: BundleInfo - Informasi tentang bundle saat inistatus: string - Status siap
Objek BundleInfo
Aplikasi siapBanyak acara termasuk sebuah BundleInfo objek dengan sifat berikut:
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}Di mana BundleStatus dapat:
'success'- Paket diunduh dengan sukses'error'- Pengunduhan paket gagal'pending'- Paket menunggu untuk diatur sebagai berikutnya'downloading'- Paket sedang diunduh
Contoh: Alur Pembaruan Lengkap
Bagian berjudul “Contoh: Alur Pembaruan Lengkap”Berikut adalah contoh mengatasi alur pembaruan lengkap dengan acara:
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 }}Praktik Terbaik
Bab berjudul “Praktik Terbaik”-
Selalu panggil
notifyAppReady(): Ketika menggunakan pembaruan otomatis, selalu panggil metode ini setelah aplikasi Anda diinisialisasi untuk mencegah rollback. -
Menghadapi gagal dengan sopan: Melakukan penanganan kesalahan yang tepat untuk gagal download dan update.
-
Menginformasikan pengguna: Menggunakan event kemajuan download untuk menampilkan kemajuan update kepada pengguna.
-
Menghapus pendengar: Menghapus pendengar event ketika tidak diperlukan lagi untuk mencegah kebocoran memori.
-
Menguji skenario update: Menguji berbagai skenario update termasuk gagal, rollback, dan update besar.
Teruskan dari Events
: Bagian berjudul “Teruskan dari Events”Jika Anda menggunakan : Events untuk merencanakan pekerjaan plugin asli, hubungkannya dengan Menggunakan @capgo/capacitor-updater untuk kemampuan asli dalam Menggunakan @capgo/capacitor-updater, Capgo Direktori Plugin untuk alur kerja produk dalam Capgo Direktori Plugin, Capacitor Plugin oleh Capgo untuk detail implementasi dalam Capacitor Plugin oleh Capgo, Menambahkan atau Mengupdate Plugin untuk detail implementasi dalam Menambahkan atau Mengupdate Plugin, dan Alternatif Plugin Enterprise Ionic untuk alur kerja produk dalam Alternatif Plugin Enterprise Ionic.