Referensi Pembaruan Electron API
Salin 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()
Judul bagian “notifyAppReady()”Harus dipanggil pada setiap peluncuran aplikasi. Mengkonfirmasi bahwa bundle dimuat dengan sukses dan mencegah rollback otomatis.
await updater.notifyAppReady();download(options)
Judul bagian “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:
| Opsi | Jenis | Wajib | Deskripsi |
|---|---|---|---|
url | Bahasa target: Indonesia | Ya | URL untuk mengunduh bundle dari |
version | Bahasa target: Indonesia | Ya | Identifikasi versi untuk bundle |
checksum | Bahasa target: Indonesia | Tidak | Checksum SHA256 untuk verifikasi |
sessionKey | Bahasa target: Indonesia | Tidak | Kunci sesi untuk bundle yang dienkripsi |
Hasil: BundleInfo objek dengan id, version, status
next(options)
Judul bagian “next(options)”Antriankan bundle untuk dimuat pada restart aplikasi berikutnya.
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:
| Pilihan | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Paket untuk mengaktifkan |
reload()
Bagian berjudul “reload()”Muat ulang aplikasi secara manual dengan paket saat ini.
await updater.reload();delete(options)
Bagian berjudul “delete(options)”Hapus paket dari penyimpanan.
await updater.delete({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Paket 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 benar, reset ke bundle terakhir yang berhasil daripada builtin |
Informasi Bundle
Bagian berjudul “Informasi Bundle”current()
Bagian 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)
Bagian Judul “list(options)”Tampilkan semua paket yang diunduh.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Bagian Judul “getNextBundle()”Dapatkan paket yang akan dijalankan setelah restart.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Bagian Judul “getFailedUpdate()”Dapatkan informasi tentang update terakhir yang gagal (bermanfaat untuk debugging rollback).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullMendapatkan Versi Bawaan()
Judul Bagian “Mendapatkan Versi Bawaan()”Mendapatkan Versi yang Dibawa oleh File Binari Aplikasi.
const version = await updater.getBuiltinVersion();// '1.0.0'Pengecekan Perbaruan
Judul Bagian “Pengecekan Perbaruan”Mendapatkan Versi Terbaru(options)
Judul Bagian “Mendapatkan Versi Terbaru(options)”Mengecek 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 Unduh (kosong jika tidak ada update) |
version | string | Versi yang tersedia |
checksum | string | Checksum SHA256 |
sessionKey | string | Kunci Sesi Enkripsi |
error | string | Message kesalahan jika cek gagal |
message | string | Pesan server |
Manajemen Channel
Judul Bagian “Manajemen Channel”setChannel(options)
Judul Bagian “setChannel(options)”Tetapkan perangkat ke saluran tertentu.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
Judul Bagian “unsetChannel(options)”Batalkan pengaturan saluran dan gunakan default.
await updater.unsetChannel();Mendapatkan saluran saat ini.
Judul Bagian “getChannel()”Mendapatkan penugasan saluran saat ini.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }Mendapatkan daftar saluran yang tersedia.
Judul Bagian “listChannels()”Mendapatkan daftar saluran yang tersedia untuk aplikasi ini.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Syarat Pengunduhan
Judul Bagian “Delay Conditions”Mengontrol kapan pembaruan yang diunduh diterapkan.
Mengatur Pengunduhan Berulang (Multi Delay) dengan Opsi
Bagian berjudul “setMultiDelay(options)”Set kondisi yang harus dipenuhi sebelum update 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 | Waktu opsional (ms) | Tunggu aplikasi menjadi background |
kill | - | Tunggu aplikasi dibunuh dan di-restart |
date | String tanggal ISO | Tunggu sampai tanggal/waktu spesifik |
nativeVersion | String Versi | Tunggu update aplikasi native |
cancelDelay()
Bab “cancelDelay()”Hapus semua kondisi delay dan terapkan update segera pada cek berikutnya.
await updater.cancelDelay();Pengenalan Perangkat
Bab “Pengenalan Perangkat”getDeviceId()
Bab “getDeviceId()”Dapatkan identifikasi perangkat unik.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Bagian Judul “setCustomId(options)”Atur identifikasi khusus untuk perangkat (bermanfaat untuk analisis).
await updater.setCustomId({ customId: 'user-123' });Konfigurasi
Bagian Judul “Konfigurasi”setUpdateUrl(options)
Bagian Judul “setUpdateUrl(options)”Ubah URL server pembaruan 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)
Judul bagian “setChannelUrl(options)”Ubah URL manajemen channel.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Judul bagian “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 Judul “setDebugMenu(options)”Aktifkan atau nonaktifkan menu debug.
await updater.setDebugMenu({ enabled: true });isDebugMenuEnabled()
Bagian Judul “isDebugMenuEnabled()”Periksa apakah menu debug sudah diaktifkan.
const enabled = await updater.isDebugMenuEnabled();Event
Bagian Judul “Event”Dengarkan event pembaruan menggunakan addListener:
updater.addListener('eventName', (event) => { // Handle event});Acara yang Tersedia
Judul Bagian “Acara yang Tersedia”| Acara | Payload | Deskripsi |
|---|---|---|
download | { percent, status } | Pengaturan Progres Download |
updateAvailable | { bundle } | Tersedia Perbaruan Baru |
noNeedUpdate | { message } | Sudah Terupdate |
downloadComplete | { bundle } | Download Selesai dengan Sukses |
downloadFailed | { bundle, error } | Download Gagal |
breakingAvailable | { bundle } | Perbaruan Tidak Kompatibel (memerlukan perbaruan native) |
updateFailed | { bundle, reason } | Penginstalan Perbaruan Gagal |
appReloaded | {} | Aplikasi telah di-reload |
appReady | {} | notifyAppReady() telah 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);});Opsi Konstruktor
Bagian berjudul “Opsi Konstruktor”Opsi konfigurasi 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)});Lanjutkan dari Electron Updater API Referensi
Bagian berjudul “Lanjutkan dari Electron Updater API Referensi”Jika Anda menggunakan Pengaturan Pembaruan Electron API Referensi untuk merencanakan dashboard dan API operasional, hubungkannya dengan Menggunakan @capgo/electron-updater untuk kemampuan asli dalam Menggunakan @capgo/electron-updater, Ringkasan API untuk detail implementasi dalam Ringkasan API, Pendahuluan untuk detail implementasi dalam Pendahuluan, Kunci API untuk detail implementasi dalam Kunci API, dan Perangkat untuk detail implementasi dalam Perangkat.