Referensi Electron Updater API
Panduan untuk mengatur dengan AI yang dapat dicopy.
Halaman ini mendokumentasikan semua metode, event, dan opsi pengaturan yang tersedia untuk Pembarui Elektron.
Metode Utama
Judul Bagian “Metode Utama”notifyAppReady()
notifyAppReady()Wajib dipanggil pada setiap peluncuran aplikasi. Mengkonfirmasi bahwa bundle telah dimuat dengan sukses dan mencegah rollback otomatis.
await updater.notifyAppReady();download(options)
Judul bagian berjudul “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 | Wajib | Deskripsi |
|---|---|---|---|
url | string | Ya | URL untuk mengunduh bundle dari |
version | string | Ya | Identifikasi versi untuk bundle |
checksum | string | Tidak | Checksum SHA256 untuk verifikasi |
sessionKey | string | Tidak | Kunci sesi untuk bundle yang dienkripsi |
Kembali: BundleInfo objek dengan id, version, status
next(options)
Bagian berjudul “next(options)”Antriankan paket untuk dimuat pada restart aplikasi berikutnya.
await updater.next({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Wajib | Deskripsi |
|---|---|---|---|
id | string | Iya | ID Paket untuk di antriankan |
set(options)
Bagian berjudul “set(options)”Segera beralih ke bundle dan muat ulang aplikasi.
await updater.set({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Wajib | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Bundle untuk mengaktifkan |
reload()
Bagian judul “reload()”Muat ulang aplikasi secara manual dengan bundle saat ini.
await updater.reload();delete(options)
Bab berjudul “delete(options)”Hapus bundle dari penyimpanan.
await updater.delete({ id: 'bundle-id' });Parameter:
| Pilihan | Jenis | Wajib | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Paket untuk dihapus |
reset(options)
Judul Bagian “reset(options)”Reset ke versi bawaan atau bundle terakhir yang berhasil.
// Reset to builtinawait updater.reset({ toLastSuccessful: false });
// Reset to last successful bundleawait updater.reset({ toLastSuccessful: true });Parameter:
| Pilihan | Tipe | Wajib | Deskripsi |
|---|---|---|---|
toLastSuccessful | boolean | Tidak | Jika benar, kembalikan ke bundle sukses terakhir bukan built-in |
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' }list(options)
Bab berjudul “list(options)”Daftar semua bundle yang diunduh.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]Mendapatkan Paket Berikutnya()
Bab berjudul “Mendapatkan Paket Berikutnya()”Mendapatkan paket yang ditunggu untuk restart berikutnya.
const next = await updater.getNextBundle();// { id, version, status } or nullMendapatkan Update Gagal()
Bab berjudul “Mendapatkan Update Gagal()”Mendapatkan informasi tentang update terakhir yang gagal (bermanfaat untuk debugging rollback).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullMendapatkan Versi Bawaan()
Bab berjudul “Mendapatkan Versi Bawaan()”Mendapatkan versi yang dikirimkan bersama dengan aplikasi biner.
const version = await updater.getBuiltinVersion();// '1.0.0'Periksa Update
Judul Bagian “Periksa Update”getLatest(options)
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);}Mengembalikan:
| Sifat | Jenis | Deskripsi |
|---|---|---|
url | string | URL Download (kosong jika tidak ada update) |
version | __CAPGO_KEEP_0__ | Versi yang tersedia |
checksum | __CAPGO_KEEP_1__ | Checksum SHA256 |
sessionKey | __CAPGO_KEEP_2__ | Kunci sesi enkripsi |
error | __CAPGO_KEEP_3__ | Pesan kesalahan jika cek gagal |
message | __CAPGO_KEEP_4__ | Pesan server |
Pengelolaan Channel
Bagian berjudul “Pengelolaan Channel”setChannel(options)
Judul Bagian “setChannel(options)”Tetapkan perangkat ke saluran tertentu.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
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' }Mengembalikan Daftar Saluran()
Bab yang berjudul “Mengembalikan Daftar Saluran()”Daftar semua saluran yang tersedia untuk aplikasi ini.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Syarat Penundaan
Bab yang berjudul “Syarat Penundaan”Kendali kapan pembaruan yang diunduh diterapkan.
Mengatur Penundaan Multi (opsi)
Bab yang berjudul “Mengatur Penundaan Multi (opsi)”Mengatur 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:
| Wujud | Nilai | Deskripsi |
|---|---|---|
background | Waktu opsional (ms) | Tunggu aplikasi menjadi background |
kill | - | Tunggu aplikasi dihentikan dan di-restart |
date | String tanggal ISO | Tunggu sampai tanggal/waktu tertentu |
nativeVersion | String versi | Tunggu update aplikasi native |
cancelDelay()
Judul bagian “cancelDelay()”Hapus semua kondisi penundaan dan terapkan pembaruan secara langsung pada cek berikutnya.
await updater.cancelDelay();Identifikasi Perangkat
Bagian berjudul “Identifikasi Perangkat”getDeviceId()
Bagian berjudul “getDeviceId()”Dapatkan identifikasi perangkat unik.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Bagian berjudul “setCustomId(options)”Atur identifikasi khusus untuk perangkat (bermanfaat untuk analitis).
await updater.setCustomId({ customId: 'user-123' });Konfigurasi
Bagian berjudul “Konfigurasi”setUpdateUrl(options)
Bagian berjudul “setUpdateUrl(options)”Ganti URL server pembaruan secara waktu eksekusi.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });setStatsUrl(options)
Bagian berjudul “setStatsUrl(options)”Ubah URL pelaporan statistik.
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });setChannelUrl(options)
Bab Judul “setChannelUrl(options)”Ubah URL manajemen saluran.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Bab Judul “setAppId(options)”Ubah ID Aplikasi secara waktu jalannya.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Bagian berjudul “getAppId()”Dapatkan ID Aplikasi saat ini.
const appId = await updater.getAppId();setDebugMenu(options)
Bagian berjudul “setDebugMenu(options)”Aktifkan atau matikan menu debug.
await updater.setDebugMenu({ enabled: true });Apakah Menu Debug Aktif()
Bab yang berjudul “Apakah Menu Debug Aktif()”Periksa apakah menu debug aktif.
const enabled = await updater.isDebugMenuEnabled();Dengarkan event pembaruan menggunakan addListener:
updater.addListener('eventName', (event) => { // Handle event});Event yang Tersedia
Bab yang berjudul “Event yang Tersedia”| Event | Payload | Deskripsi |
|---|---|---|
download | { percent, status } | Progres download diperbarui |
updateAvailable | { bundle } | Update baru tersedia |
noNeedUpdate | { message } | Sudah terupdate |
downloadComplete | { bundle } | Download selesai dengan sukses |
downloadFailed | { bundle, error } | Download gagal |
breakingAvailable | { bundle } | Update tidak kompatibel tersedia (memerlukan update native) |
updateFailed | { bundle, reason } | Pemasangan update gagal |
appReloaded | {} | Aplikasi telah di-reload |
appReady | {} | notifyAppReady() di panggil |
Contoh: Penggunaan Penuh Event
Judul Bagian “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
Bab berjudul “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 Dokumentasi Electron Updater API
Bab berjudul “Teruskan dari Dokumentasi Electron Updater API”Jika Anda menggunakan Dokumentasi Electron Updater API untuk merencanakan dashboard dan API operasi, hubungkannya dengan Menggunakan @capgo/electron-updater untuk kemampuan asli dalam Menggunakan @capgo/electron-updater, Ringkasan API untuk detail implementasi di Ringkasan API Pendahuluan untuk detail implementasi di Pendahuluan Kunci API untuk detail implementasi di Kunci API, dan Perangkat untuk detail implementasi di Perangkat.