Referensi Pembaruan Electron 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()
Judul bagian “notifyAppReady()”Harus dipanggil pada setiap peluncuran aplikasi. Mengkonfirmasi bahwa bundle dimuat dengan sukses dan mencegah rollback otomatis.
await updater.notifyAppReady();download(options)
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 | Diperlukan | Deskripsi |
|---|---|---|---|
url | Bahasa target: Indonesia | Ya | URL untuk mengunduh bundle dari |
version | Ya | Identifikasi versi untuk bundle | Tidak |
checksum | Checksum SHA256 untuk verifikasi | Tidak | Kunci sesi untuk bundle yang dienkripsi |
sessionKey | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ | __CAPGO_KEEP_0__ |
Mengembalikan: BundleInfo objek dengan id, version, status
next(options)
Bagian berjudul “next(options)”Antar antrian untuk memuat bundle pada restart aplikasi berikutnya.
await updater.next({ id: 'bundle-id' });Parameter:
| Opsi | Tipe | Wajib | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Paket untuk antrian |
set(options)
Bagian berjudul “set(options)”Segera beralih ke paket dan memulai ulang aplikasi.
await updater.set({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Wajib | Deskripsi |
|---|---|---|---|
id | string | Ya | ID Paket untuk mengaktifkan |
reload()
Bagian berjudul “reload()”Muat ulang aplikasi dengan paket saat ini secara manual.
await updater.reload();delete(options)
Bagian berjudul “delete(options)”Hapus paket dari penyimpanan.
await updater.delete({ id: 'bundle-id' });Parameter:
| Pilihan | Jenis | Wajib | Deskripsi |
|---|---|---|---|
id | string | Iya | ID Paket untuk dihapus |
reset(options)
Judul Bagian “reset(options)”Mengembalikan 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 | Diperlukan | Deskripsi |
|---|---|---|---|
toLastSuccessful | boolean | Tidak | Jika true, reset ke bundle terakhir yang berhasil bukan dari 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 Judul “list(options)”Tampilkan semua bundle yang diunduh.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Bagian Judul “getNextBundle()”Ambil bundle yang akan dijalankan setelah restart berikutnya.
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 Perbarui
Judul Bagian “Pengecekan Perbarui”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);}Kembali:
| Sifat | Tipe | Deskripsi |
|---|---|---|
url | __CAPGO_KEEP_0__ | URL Download (kosong jika tidak ada update) |
version | __CAPGO_KEEP_0__ | Versi yang tersedia |
checksum | __CAPGO_KEEP_0__ | Checksum SHA256 |
sessionKey | __CAPGO_KEEP_0__ | Kunci Sesi Enkripsi |
error | __CAPGO_KEEP_0__ | Pesan Kesalahan jika cek gagal |
message | string | Pesan server |
Pengelolaan Channel
Judul Bagian “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();Mendapatkan Saluran
Judul Bagian “Mendapatkan Saluran”Mendapatkan penugasan saluran saat ini.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }Mendapatkan Daftar Saluran
Judul Bagian “Mendapatkan Daftar Saluran”Mendapatkan semua saluran yang tersedia untuk aplikasi ini.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Kondisi Pengunduran
Judul Bagian “Kondisi Pengunduran”Mengendalikan kapan pembaruan yang diunduh diterapkan.
Setel Pengunduran Multi (opsi)
Bagian berjudul “setMultiDelay(options)”Set 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 | Waktu tunggu 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 asli |
__CAPGO_KEEP_0__
Judul Bagian “__CAPGO_KEEP_0__”Hapus semua kondisi delay dan terapkan update segera pada cek berikutnya.
await updater.cancelDelay();Identifikasi Perangkat
Judul Bagian “Identifikasi Perangkat”__CAPGO_KEEP_0__()
Judul Bagian “__CAPGO_KEEP_0__()”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)
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 manajemen saluran.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Bagian berjudul “setAppId(options)”Ubah ID Aplikasi pada saat runtime.
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});Event yang Tersedia
Judul Bagian “Event yang Tersedia”| Event | Payload | Deskripsi |
|---|---|---|
download | { percent, status } | Pengupdatean Progress Download |
updateAvailable | { bundle } | Tersedia Perbarui Baru |
noNeedUpdate | { message } | Sudah Terupdate |
downloadComplete | { bundle } | Pengunduhan Berhasil |
downloadFailed | { bundle, error } | Pengunduhan Gagal |
breakingAvailable | { bundle } | Perbarui Tidak Kompatibel (memerlukan perbarui asli) |
updateFailed | { bundle, reason } | Penginstalan Perbarui Gagal |
appReloaded | {} | Aplikasi telah di-reload |
appReady | {} | notifyAppReady() telah dipanggil |
Contoh: Pengaturan Penuh untuk Event
Judul Bagian “Contoh: Pengaturan Penuh untuk 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)});