Referensi Electron Updater API
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Halaman ini mendokumentasikan semua metode, event, dan opsi pengaturan yang tersedia untuk Pembarui Electron.
Metode Utama
Judul bagian “Metode Utama”notifyAppReady()
Bagian Judul “notifyAppReady()”Wajib dipanggil pada setiap peluncuran aplikasi. Mengkonfirmasi bahwa bundle telah dimuat dengan sukses dan mencegah rollback otomatis.
await updater.notifyAppReady();download(options)
Bagian Judul “download(options)”Unduh bundle dari 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 | Diperlukan | Deskripsi |
|---|---|---|---|
url | string | Ya | URL untuk mengunduh bundle dari |
version | string | Ya | Versi identifikasi untuk bundle |
checksum | Bahasa Indonesia | Tidak | SHA256 untuk verifikasi |
sessionKey | Bahasa Indonesia | Tidak | Kunci sesi untuk bundle yang dienkripsi |
Kembali: BundleInfo objek dengan id, version, status
next(options)
Judul bagian “next(options)”Tunggu bundle untuk di-load pada restart aplikasi selanjutnya.
await updater.next({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Paket untuk antrian |
set(options)
Judul Bagian “set(options)”Segera beralih ke paket dan muat ulang aplikasi.
await updater.set({ id: 'bundle-id' });Parameter:
| Opsi | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Paket untuk mengaktifkan |
reload()
Judul Bagian “reload()”Meng_reload aplikasi secara manual dengan paket saat ini.
await updater.reload();hapus(options)
Judul Bagian “hapus(options)”Hapus sebuah bundle dari penyimpanan.
await updater.delete({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Bundle untuk dihapus |
reset(options)
Judul Bagian: “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 | Diperlukan | Deskripsi |
|---|---|---|---|
toLastSuccessful | boolean | Tidak | Jika true, reset ke bundle terakhir yang sukses bukan versi bawaan |
Informasi Paket
Section berjudul “Informasi Paket”current()
Section berjudul “current()”Dapatkan informasi tentang paket saat ini dan versi native.
const info = await updater.current();// { bundle: { id, version, status }, native: '1.0.0' }list(options)
Section berjudul “list(options)”Tampilkan semua paket yang diunduh.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Section berjudul “getNextBundle()”Dapatkan paket yang ditunggu untuk restart berikutnya.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Bagian berjudul “getFailedUpdate()”Dapatkan informasi tentang pembaruan terakhir yang gagal (bermanfaat untuk debugging rollback).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
Bagian berjudul “getBuiltinVersion()”Dapatkan versi yang dikirimkan bersama dengan file biner aplikasi.
const version = await updater.getBuiltinVersion();// '1.0.0'Pengecekan Pembaruan
Bagian berjudul “Pengecekan Pembaruan”getTerbaru(options)
Judul Bagian “getTerbaru(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 Unduh (kosong jika tidak ada update) |
version | string | Versi tersedia |
checksum | string | Checksum SHA256 |
sessionKey | string | Kunci Enkripsi Sesi |
error | string | Pesan Kesalahan Jika Cek Gagal |
message | string | Pesan Server |
Pengelolaan Saluran
Judul Bagian “Pengelolaan Saluran”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' }listChannels()
Judul bagian “listChannels()”Daftar semua saluran yang tersedia untuk aplikasi ini.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Kondisi Delay
Bagian berjudul “Kondisi Delay”Kontrol kapan pembaruan yang diunduh diterapkan.
setMultiDelay(options)
Bagian berjudul “setMultiDelay(options)”Tetapkan kondisi 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 Kondisi Delay:
| Jenis | Nilai | Deskripsi |
|---|---|---|
background | __CAPGO_KEEP_0__ | Tunggu aplikasi menjadi background |
kill | - | Tunggu aplikasi dihentikan dan diulang |
date | String tanggal ISO | Tunggu tanggal spesifik/waktu |
nativeVersion | String versi | Tunggu aplikasi native diperbarui |
cancelDelay()
Bagian berjudul “cancelDelay()”Bersihkan semua kondisi delay dan terapkan update segera pada cek berikutnya
await updater.cancelDelay();Identifikasi Perangkat
Pembahasan berjudul “Identifikasi Perangkat”getDeviceId()
Pembahasan berjudul “getDeviceId()”Dapatkan identifikasi unik perangkat.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Pembahasan berjudul “setCustomId(options)”Atur identifikasi khusus untuk perangkat (bermanfaat untuk analisis).
await updater.setCustomId({ customId: 'user-123' });Konfigurasi
Pembahasan berjudul “Konfigurasi”setUpdateUrl(options)
Judul Bagian “setUpdateUrl(options)”Ubah URL Server Perbaruan secara waktu nyata.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });setStatsUrl(options)
Judul Bagian “setStatsUrl(options)”Ubah URL Pelaporan Statistik.
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });setChannelUrl(options)
Bagian Judul “setChannelUrl(options)”Ubah URL Manajemen Saluran.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Bagian Judul “setAppId(options)”Ubah ID Aplikasi secara waktu nyata.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Bagian Judul “getAppId()”Dapatkan ID Aplikasi saat ini.
const appId = await updater.getAppId();Debug
Bagian Judul “Debug”setDebugMenu(options)
Bagian Judul “setDebugMenu(options)”Aktifkan atau nonaktifkan menu debug.
await updater.setDebugMenu({ enabled: true });isDebugMenuEnabled()
Bagian Judul “isDebugMenuEnabled()”Periksa apakah menu debug diaktifkan.
const enabled = await updater.isDebugMenuEnabled();Event
Judul bagian “Event”Dengarkan event pembaruan menggunakan addListener:
updater.addListener('eventName', (event) => { // Handle event});Event yang Tersedia
Judul bagian “Event yang Tersedia”| Event | Payload | Deskripsi |
|---|---|---|
download | { percent, status } | Update kemajuan download |
updateAvailable | { bundle } | Update baru tersedia |
noNeedUpdate | { message } | Sudah terupdate |
downloadComplete | { bundle } | Pengunduhan selesai dengan sukses |
downloadFailed | { bundle, error } | Pengunduhan gagal |
breakingAvailable | { bundle } | Update tidak kompatibel (memerlukan update native) |
updateFailed | { bundle, reason } | Penginstalan update gagal |
appReloaded | {} | Aplikasi telah di-reload |
appReady | {} | notifyAppReady() dipanggil |
Contoh: Penggunaan Penuh Event
Bagian 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);});Option Konstruktor
Opsi KonstruktorOpsi konfigurasi lengkap 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
Bagian berjudul “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 dalam API Ringkasan, Pendahuluan untuk detail implementasi di Pendahuluan, API Kunci untuk detail implementasi di API Kunci, dan Perangkat untuk detail implementasi di Perangkat.