Events
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Plugin Pembarui Capacitor menyediakan beberapa event yang dapat Anda dengarkan untuk memantau proses pembaruan dan bereaksi terhadap berbagai keadaan.
Konfigurasi Pembarui Event
Bab berjudul “Konfigurasi Pembarui Event”Untuk mendengarkan event, gunakan addListener metode pada CapacitorUpdater objek:
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();Event yang Tersedia
Bab berjudul “Event yang Tersedia”download
Bab berjudul “download”Dipicu selama proses download bundle. Menyediakan informasi kemajuan download.
CapacitorUpdater.addListener('download', (event) => { console.log(`Download progress: ${event.percent}%`); console.log('Bundle info:', event.bundle);});Data Acara:
percent: angka - Persentase kemajuan download (0-100)bundle: BundleInfo - Informasi tentang bundle yang sedang diunduh
noNeedUpdate
Bagian berjudul “tidakPerluDiperbarui”Dipicu ketika sebuah pengecekan untuk memperbarui menentukan bahwa tidak ada pembaruan 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”Dibebaskan 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 paket pembaruan yang tersedia
downloadComplete
Bagian berjudul “downloadComplete”Dibebaskan ketika paket unduhan 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: BundleInfo - Informasi tentang paket yang telah diunduh
majorAvailable
Bagian berjudul “majorAvailable”Dibebaskan ketika ada pembaruan besar yang 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 dari Perbaruan Utama
updateFailed
Bagian berjudul “updateFailed”Ditrigger ketika perbaruan 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: BundleInfo - Informasi tentang bundel yang gagal terpasang
downloadFailed
Bagian berjudul “downloadFailed”Ditrigulasi ketika pengunduhan bundle 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
Judul Bagian “appReloaded”Ditrigulasi ketika aplikasi telah di-reload.
CapacitorUpdater.addListener('appReloaded', () => { console.log('App has been reloaded'); // Perform any necessary reinitialization});Data Acara: Tidak Ada
appReady
Judul Bagian “appReady”Ditrigulasi ketika aplikasi siap digunakan setelah pembaruan.
CapacitorUpdater.addListener('appReady', (event) => { console.log('App is ready'); console.log('Current bundle:', event.bundle); console.log('Status:', event.status);});Data Acara:
bundle: Info Paket - Informasi tentang paket saat inistatus.: string - Status siap
Objek Info Paket
Judul bagian “Objek Info Paket”Banyak acara termasuk BundleInfo objek dengan properti 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 menjadi:
'success'- Bundle berhasil diunduh'error'- Pengunduhan/instalasi bundle gagal'pending'- Bundle menunggu untuk ditetapkan sebagai berikutnya'downloading'- Bundle sedang diunduh
Contoh: Alur Pembaruan Lengkap
Judul bagian “Contoh: Alur Pembaruan Lengkap”Contoh penggunaan alur pembaruan lengkap dengan event:
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
Bagian berjudul “Praktik Terbaik”-
Selalu panggil
notifyAppReady(): Ketika menggunakan auto-update, selalu panggil metode ini setelah aplikasi Anda diinisialisasi untuk mencegah rollback. -
Tangani gagal dengan sopan: Implementasikan penanganan error yang tepat untuk gagal download dan update.
-
Berikan feedback kepada pengguna: Gunakan event progress download untuk menampilkan kemajuan pembaruan kepada pengguna.
-
Membersihkan pendengar: Hapus pendengar event ketika tidak lagi diperlukan untuk mencegah kebocoran memori.
-
Pengujian skenario pembaruan: Uji berbagai skenario pembaruan termasuk gagal, rollback, dan pembaruan besar.
Teruskan dari Event
Judul bagian “Teruskan dari Event”Jika Anda menggunakan Event untuk merencanakan pekerjaan plugin native, hubungkannya dengan Menggunakan @capgo/capacitor-updater untuk kemampuan native di Menggunakan @capgo/capacitor-updater, Direktori Plugin Capgo untuk alur kerja produk di Direktori Plugin Capgo, Plugin-Plugin Capacitor oleh Capgo untuk detail implementasi di Plugin-Plugin Capacitor oleh Capgo, Menambahkan atau Mengupdate Plugin untuk detail implementasi di Menambahkan atau Mengupdate Plugin, dan Alternatif Plugin Enterprise Ionic untuk alur kerja produk di Alternatif Plugin Enterprise Ionic.