Referensi Electron Updater API
Copikan prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Halaman ini mendokumentasikan semua metode, event, dan opsi pengaturan yang tersedia untuk Electron Updater.
Metode Utama
Section titled “Core Methods”notifyAppReady()
Bagian berjudul “notifyAppReady()”Harus dipanggil pada setiap peluncuran aplikasi. Mengkonfirmasi bahwa bundel dimuat dengan sukses dan mencegah rollback otomatis.
await updater.notifyAppReady();download(options)
Metode Utama: download(options)Unduh sebuah bundle dari sebuah URL.
const bundle = await updater.download({ url: 'https://example.com/bundle.zip', version: '1.0.1', checksum: 'sha256-hash', // Optional but recommended sessionKey: '...', // For encrypted bundles});Parameter:
| Pilihan | Tipe | context | Diperlukan |
|---|---|---|---|
url | Deskripsi | string | URL untuk mengunduh bundle dari |
version | Deskripsi | string | Identifikasi versi untuk bundle |
checksum | string | Tidak | Checksum SHA256 untuk verifikasi |
sessionKey | string | Tidak | Kunci sesi untuk bundle yang dienkripsi |
Mengembalikan: BundleInfo objek dengan id, version, status
next(options)
Bab berjudul “next(options)”Antar bundle untuk dimuat pada restart aplikasi berikutnya.
await updater.next({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Jenis | Diperlukan |
|---|---|---|---|
id | Deskripsi | string | ID Paket untuk antrian |
ID Paket untuk antrian
Section titled “set(options)”Segera beralih ke bundle dan muat ulang aplikasi.
await updater.set({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Jenis | Diperlukan |
|---|---|---|---|
id | Deskripsi | String | ID Paket untuk diaktifkan |
reload()
Section titled “reload()”Berulang (Reload) - Aktifkan Paket yang Aktif Sekarang
await updater.reload();Hapus(options)
Bab Judul “Hapus(options)”Hapus sebuah paket dari penyimpanan.
await updater.delete({ id: 'bundle-id' });Masukan:
| Pilihan | Tipe | Required | Diperlukan |
|---|---|---|---|
id | Deskripsi | Yes | ID Paket untuk dihapus |
reset(options)
Bagian berjudul “reset(options)”Reset ke versi bawaan atau bundle terakhir yang sukses.
// Reset to builtinawait updater.reset({ toLastSuccessful: false });
// Reset to last successful bundleawait updater.reset({ toLastSuccessful: true });Parameter:
| Pilihan | Tipe | Required | Diperlukan |
|---|---|---|---|
toLastSuccessful | Deskripsi | No | Jika benar, kembali ke bundle terakhir yang berhasil daripada bawaan |
Informasi Bundle
Bab berjudul “Informasi Bundle”current()
Bab berjudul “current()”Dapatkan informasi tentang bundle saat ini dan versi native.
const info = await updater.current();// { bundle: { id, version, status }, native: '1.0.0' }Daftar(options)
Bab berjudul “list(options)”Daftar semua bundle yang diunduh.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Mendapatkan Paket BerikutnyaDapatkan paket yang ditunggu untuk restart berikutnya.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Mendapatkan Informasi Paket yang GagalMendapatkan informasi tentang update terakhir yang gagal (berguna untuk debugging rollback).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
Section titled “getBuiltinVersion()”Mendapatkan versi yang dikirimkan dengan file biner aplikasi.
const version = await updater.getBuiltinVersion();// '1.0.0'Pengecekan Update
Judul Bagian: “Pengecekan Update”__CAPGO_KEEP_0__
Judul Bagian: “getLatest(options)”Periksa server untuk versi terbaru yang tersedia.
const latest = await updater.getLatest();
if (latest.url && !latest.error) { // Update available console.log('New version:', latest.version); console.log('Download URL:', latest.url);} else if (latest.error) { console.error('Error checking updates:', latest.error);}Kembali:
| Properti | Tipe | Deskripsi |
|---|---|---|
url | string | URL Download (kosong jika tidak ada update) |
version | string | Versi yang tersedia |
checksum | string | Checksum SHA256 |
sessionKey | string | Kunci sesi enkripsi |
error | string | Pesan kesalahan jika cek gagal |
message | string | Pesan server |
Pengelolaan Channel
Bagian berjudul “Pengelolaan Channel”Atur Saluran (options)
Judul Bagian ‘setChannel(options)’Assign perangkat ke saluran tertentu.
await updater.setChannel({ channel: 'beta' });Mengatur Saluran (unsetChannel)
Judul Bagian ‘unsetChannel(options)’Hapus pengaturan saluran dan gunakan default.
await updater.unsetChannel();getChannel()
Judul Bagian ‘getChannel()’Dapatkan pengaturan saluran saat ini.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }listChannels()
Judul Bagian “listChannels()”Daftar semua saluran yang tersedia untuk aplikasi ini.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Syarat Penundaan
Judul Bagian “Syarat Penundaan”Kendali kapan pembaruan yang diunduh diterapkan.
pengaturanJedaMulti(options)
Judul Bagian “setMultiDelay(options)”Atur syarat-syarat yang harus dipenuhi sebelum pembaruan diterapkan.
// Wait for app to be backgroundedawait updater.setMultiDelay({ delayConditions: [{ kind: 'background' }]});
// Wait until specific dateawait updater.setMultiDelay({ delayConditions: [{ kind: 'date', value: '2024-12-25T00:00:00Z' }]});
// Wait for app to be killed and restartedawait updater.setMultiDelay({ delayConditions: [{ kind: 'kill' }]});
// Multiple conditions (all must be met)await updater.setMultiDelay({ delayConditions: [ { kind: 'background' }, { kind: 'date', value: '2024-12-25T00:00:00Z' } ]});Jenis Syarat Penundaan:
| Tipe | Nilai | Deskripsi |
|---|---|---|
background | Waktu opsional (ms) | Tunggu aplikasi berada di latar belakang |
kill | - | Tunggu aplikasi dihentikan dan diulang |
date | String tanggal ISO | Tunggu sampai tanggal/waktu tertentu |
nativeVersion | String versi | Tunggu aplikasi native untuk diperbarui |
cancelDelay()
Bab berjudul “cancelDelay()”Jadikan semua kondisi delay kosong dan aplikasikan update segera pada cek berikutnya.
await updater.cancelDelay();Identifikasi Perangkat
Bagian berjudul “Identifikasi Perangkat”getDeviceId()
Bagian berjudul “getDeviceId()”Dapatkan identifikasi unik perangkat.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'Atur ID Kustom (setCustomId)
Bagian berjudul “setCustomId(options)”Atur identifikasi khusus untuk perangkat (bermanfaat untuk analitis).
await updater.setCustomId({ customId: 'user-123' });Konfigurasi
Bagian berjudul “Konfigurasi”Atur URL Perbarui
Bagian berjudul “setUpdateUrl(options)”Ganti URL server pembaruan secara waktu nyata.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });AturURLStatistik(options)
Bagian berjudul “setStatsUrl(options)”Ganti URL pelaporan statistik.
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });Atur URL Channel
Bagian berjudul “setChannelUrl(options)”Ganti URL pengelolaan saluran.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });TetapkanIdAplikasi(options)
Bagian berjudul “setAppId(options)”Ganti ID Aplikasi secara waktu nyata.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Bagian berjudul “getAppId()”Dapatkan ID Aplikasi saat ini.
const appId = await updater.getAppId();Tetapkan Menu Debug
Bagian berjudul “setDebugMenu(options)”Aktifkan atau nonaktifkan menu debug.
await updater.setDebugMenu({ enabled: true });isDebugMenuEnabled()
Bagian berjudul “isDebugMenuEnabled()”Periksa apakah menu debug diaktifkan.
const enabled = await updater.isDebugMenuEnabled();Dengarkan event pembaruan menggunakan addListener:
updater.addListener('eventName', (event) => { // Handle event});Event yang Tersedia
Bagian berjudul “Event yang Tersedia”| Event | Payload | Deskripsi |
|---|---|---|
download | { percent, status } | Progress unduh diperbarui |
updateAvailable | { bundle } | Update baru tersedia |
noNeedUpdate | { message } | Sudah terupdate |
downloadComplete | { bundle } | Unduh selesai dengan sukses |
downloadFailed | { bundle, error } | Unduh gagal |
breakingAvailable | { bundle } | Update tidak kompatibel tersedia (memerlukan update native) |
updateFailed | { bundle, reason } | Pemasangan update gagal |
appReloaded | {} | Aplikasi telah di-reload |
appReady | {} | notifyAppReady() telah dipanggil |
Contoh: Penggunaan Penuh Event
Bab berjudul “Contoh: Penggunaan Penuh Event”// Progress trackingupdater.addListener('download', (event) => { updateProgressBar(event.percent);});
// Update available notificationupdater.addListener('updateAvailable', (event) => { showNotification(`Update ${event.bundle.version} available!`);});
// Handle completionupdater.addListener('downloadComplete', async (event) => { // Queue for next restart await updater.next({ id: event.bundle.id }); showNotification('Update will apply on next restart');});
// Handle failuresupdater.addListener('updateFailed', (event) => { console.error('Update failed:', event.reason); reportError(event);});Opsi Konstruktor
Judul Bagian “Opsi Konstruktor”Opsi pengaturan penuh untuk ElectronUpdater:
const updater = new ElectronUpdater({ // Required appId: 'com.example.app',
// Version override version: '1.0.0', // Override builtin version detection
// Server URLs updateUrl: 'https://plugin.capgo.app/updates', channelUrl: 'https://plugin.capgo.app/channel_self', statsUrl: 'https://plugin.capgo.app/stats',
// Behavior autoUpdate: true, // Enable automatic update checks appReadyTimeout: 10000, // Milliseconds before rollback (default: 10000) autoDeleteFailed: true, // Auto-delete failed bundles autoDeletePrevious: true, // Auto-delete old bundles resetWhenUpdate: true, // Reset to builtin on native update
// Channels defaultChannel: 'production',
// Direct Update Mode directUpdate: false, // 'atInstall' | 'onLaunch' | 'always' | false
// Security publicKey: '...', // RSA public key for E2E encryption
// Dynamic Configuration allowModifyUrl: false, // Allow runtime URL changes allowModifyAppId: false, // Allow runtime App ID changes persistCustomId: false, // Persist custom ID across updates persistModifyUrl: false, // Persist URL changes
// Debug debugMenu: false, // Enable debug menu (Ctrl+Shift+D) disableJSLogging: false, // Disable console logs
// Periodic Updates periodCheckDelay: 0, // Seconds between auto-checks (0 = disabled, min 600)});Teruskan dari Electron Updater API Referensi
Judul Bagian “Teruskan dari Electron Updater API Referensi”Jika Anda menggunakan Referensi Electron Updater API untuk merencanakan dashboard dan API operasi, hubungkannya dengan Menggunakan @capgo/electron-updater untuk kemampuan asli dalam Menggunakan @capgo/electron-updater, API Ringkasan untuk detail implementasi di API Panduan Umum Introduction untuk detail implementasi di Introduction API Kunci untuk detail implementasi di API Kunci, dan Peralatan Untuk detail implementasi di Perangkat.