Pengaturan Pembaruan Electron API Referensi
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Halaman ini mendokumentasikan semua metode, event, dan opsi konfigurasi yang tersedia untuk Pembarui Electron.
Metode Utama
Judul Bagian “Metode Utama”notifyAppReady()
Judul Bagian “notifyAppReady()”Wajib dipanggil pada setiap peluncuran aplikasi. Mengkonfirmasi bahwa bundle telah dimuat dengan sukses dan mencegah rollback otomatis.
await updater.notifyAppReady();Mendownload (options)
Bab berjudul “Mendownload (options)”Mendownload 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 | Diperlukan | Deskripsi |
|---|---|---|---|
url | string | Ya | URL untuk mendownload bundle dari |
version | string | Ya | Pengidentifikasi versi untuk bundle |
checksum | string | Tidak | Checksum SHA256 untuk verifikasi |
sessionKey | string | Tidak | Kunci sesi untuk bundle yang dienkripsi |
Returns: BundleInfo objek dengan id, version, status
next(options)
Bagian berjudul “next(options)”Antriankan sebuah bundle untuk dimuat pada restart aplikasi berikutnya.
await updater.next({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Bundle 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 berjudul “reload()”Muat ulang aplikasi secara manual dengan bundle saat ini.
await updater.reload();delete(options)
Bagian berjudul “delete(options)”Hapus bundle dari penyimpanan.
await updater.delete({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Wajib | Deskripsi |
|---|---|---|---|
id | Bahasa Indonesia | Ya | Bundle ID 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 | Wajib | Deskripsi |
|---|---|---|---|
toLastSuccessful | boolean | Tidak | Jika benar, reset ke bundle terakhir yang berhasil dibuat bukan dari versi bawaan |
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 berjudul “list(options)”Tampilkan semua bundle yang diunduh.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]__CAPGO_KEEP_0__
Bagian berjudul “__CAPGO_KEEP_0__”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 Perbarui
Bagian berjudul “Pengecekan Perbarui”getLatest(options)
Bagian berjudul “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
Manajemen Saluran__CAPGO_KEEP_0__
Manajemen Saluran __CAPGO_KEEP_0__Tetapkan perangkat ke saluran tertentu.
await updater.setChannel({ channel: 'beta' });__CAPGO_KEEP_0__
Manajemen Saluran __CAPGO_KEEP_0__Hapus pengaturan saluran dan gunakan default.
await updater.unsetChannel();__CAPGO_KEEP_0__
Manajemen Saluran __CAPGO_KEEP_0__Dapatkan pengaturan saluran saat ini.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }listChannels()
Bagian berjudul “listChannels()”Tampilkan 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 Pengunduran Waktu:
| Jenis | Nilai | Deskripsi |
|---|---|---|
background | Durasi opsional (ms) | Tunggu aplikasi menjadi background |
kill | - | Tunggu aplikasi dihentikan dan diulang |
date | String tanggal ISO | Tunggu hingga tanggal/tanggal spesifik |
nativeVersion | String versi | Tunggu aplikasi native diperbarui |
cancelDelay()
Bab “cancelDelay()”Menghapus semua kondisi delay dan menerapkan pembaruan segera pada cek berikutnya.
await updater.cancelDelay();Identifikasi Perangkat
Bab “Identifikasi Perangkat”getDeviceId()
Bab “getDeviceId()”Dapatkan identifikasi perangkat unik.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Bab “setCustomId(options)”Tetapkan identifikasi kustom untuk perangkat (bermanfaat untuk analitis).
await updater.setCustomId({ customId: 'user-123' });Konfigurasi
Judul Bagian “Konfigurasi”setUpdateUrl(options)
Judul Bagian “setUpdateUrl(options)”Ubah URL server pembaruan secara waktu nyata.
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)
Bagian berjudul “setChannelUrl(options)”Ubah URL pengelolaan channel.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Bagian berjudul “setAppId(options)”Ubah ID Aplikasi secara waktu eksekusi.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Bagian berjudul “getAppId()”Ambil 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 });__CAPGO_KEEP_0__
Bagian berjudul “__CAPGO_KEEP_0__”__CAPGO_KEEP_1__
const enabled = await updater.isDebugMenuEnabled();Gunakan untuk mendengarkan event pembaruan addListener:
updater.addListener('eventName', (event) => { // Handle event});Event yang Tersedia
Bagian berjudul “Event yang Tersedia”| Event | Payload | Deskripsi |
|---|---|---|
download | { percent, status } | Perbarui kemajuan download |
updateAvailable | { bundle } | Tersedia perbarui baru |
noNeedUpdate | { message } | Sudah terupdate |
downloadComplete | { bundle } | Perbarui selesai dengan sukses |
downloadFailed | { bundle, error } | Perbarui gagal |
breakingAvailable | { bundle } | Tersedia perbarui yang tidak kompatibel (memerlukan perbarui native) |
updateFailed | { bundle, reason } | Pemasangan perbarui gagal |
appReloaded | {} | Aplikasi telah di-reload |
appReady | {} | notifyAppReady() dipanggil |
Contoh: Penggunaan Penuh Event Handling
Bagian berjudul “Contoh: Pengaturan Event Penuh”// 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 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)});