Referensi Electron Updater API
Copas prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Metode Utama
Judul bagian “Metode Utama”
Copy for AInotifyAppReady()
Bagian Judul “notifyAppReady()”Harus 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:
| Opsi | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
url | string | Ya | URL untuk mengunduh bundle dari |
version | string | Ya | Identifikasi versi untuk bundle |
checksum | Bahasa Indonesia | Tidak | SHA256 untuk verifikasi |
sessionKey | Tidak | Kunci sesi untuk bundle yang dienkripsi | Kembali: |
objek dengan BundleInfo next(options) id, version, status
Judul bagian “next(options)”
Antar bundle untuk dimuat pada restart aplikasi berikutnya.Salin ke clipboard
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 berganti ke paket dan muat ulang aplikasi.
await updater.set({ id: 'bundle-id' });Parameter:
| Pilihan | Tipe | Diperlukan | Deskripsi |
|---|---|---|---|
id | string | Iya | ID Paket untuk Mengaktifkan |
reload()
Bab yang berjudul “reload()”Meng_reload Aplikasi secara Manual dengan Paket yang Sementara
await updater.reload();hapus(options)
Judul Bagian “hapus(options)”Hapus sebuah bundle dari penyimpanan.
await updater.delete({ id: 'bundle-id' });Parameter:
| Option | Tipe | Wajib | 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 | Wajib | Deskripsi |
|---|---|---|---|
toLastSuccessful | boolean | Tidak | Jika true, reset ke bundle terakhir yang sukses bukan versi bawaan |
Informasi Paket
Judul Bagian “Informasi Paket”current()
Judul Bagian “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)
Judul Bagian “list(options)”Tampilkan semua paket yang diunduh.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]getNextBundle()
Judul Bagian “getNextBundle()”Ambil bundle yang ditunggu untuk restart berikutnya.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Judul Bagian “getFailedUpdate()”Dapatkan informasi tentang update terakhir yang gagal (bermanfaat untuk debugging rollback).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
Judul Bagian “getBuiltinVersion()”Dapatkan versi yang dikirimkan bersama dengan file biner aplikasi.
const version = await updater.getBuiltinVersion();// '1.0.0'Pengecekan Update
Judul Bagian “Pengecekan Update”getTerbaru(options)
Bagian berjudul “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);}Mengembalikan:
| Sifat | 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
Bab Pengelolaan SaluransetChannel(options)
Bab setChannel(options)Tetapkan perangkat ke saluran tertentu.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
Bagian berjudul “unsetChannel(options)”Hapus penugasan saluran dan gunakan default.
await updater.unsetChannel();getChannel()
Bagian berjudul “getChannel()”Dapatkan penugasan saluran saat ini.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }listChannels()
Bagian berjudul “listChannels()”Daftar semua saluran yang tersedia untuk aplikasi ini.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Kondisi Delay
Judul bagian “Kondisi Delay”Kontrol kapan pembaruan yang diunduh diterapkan.
setMultiDelay(options)
Judul bagian “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__ (ms) | Tunggu aplikasi menjadi background |
kill | - | Tunggu aplikasi dihentikan dan diulang |
date | String tanggal ISO | Tunggu tanggal/ketika spesifik |
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
Judul Bagian “Identifikasi Perangkat”getDeviceId()
Judul Bagian “getDeviceId()”Dapatkan identifikasi unik perangkat.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Judul Bagian “setCustomId(options)”Tetapkan identifikasi khusus untuk perangkat (bermanfaat untuk analisis).
await updater.setCustomId({ customId: 'user-123' });Konfigurasi
Judul Bagian “Konfigurasi”setUpdateUrl(options)
Bagian Judul “setUpdateUrl(options)”Ubah URL Server Perbarui secara waktu nyata.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });setStatsUrl(options)
Bagian Judul “setStatsUrl(options)”Ubah URL Pelaporan Statistik.
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });setChannelUrl(options)
Bagian Judul “setChannelUrl(options)”Ubah URL Pengelolaan Saluran.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });setAppId(options)
Bagian Judul “setAppId(options)”Ubah ID Aplikasi secara waktu jalannya.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Judul Bagian “getAppId()”Dapatkan ID Aplikasi saat ini.
const appId = await updater.getAppId();Debug
Judul Bagian “Debug”setDebugMenu(options)
Judul Bagian “setDebugMenu(options)”Aktifkan atau nonaktifkan menu debug.
await updater.setDebugMenu({ enabled: true });isDebugMenuEnabled()
Judul Bagian “isDebugMenuEnabled()”Periksa jika 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 } | Progres download yang diperbarui |
updateAvailable | { bundle } | Tersedia pembaruan baru |
noNeedUpdate | { message } | Sudah terupdate |
downloadComplete | { bundle } | Pengunduhan selesai dengan sukses |
downloadFailed | { bundle, error } | Pengunduhan gagal |
breakingAvailable | { bundle } | Pembaruan tidak kompatibel (memerlukan pembaruan asli) |
updateFailed | { bundle, reason } | Penginstalan pembaruan gagal |
appReloaded | {} | Aplikasi telah di-reload |
appReady | {} | notifyAppReady() dipanggil |
Contoh: Penggunaan Penuh Event Handling
Judul Bagian “Contoh: Penggunaan Penuh Event Handling”// 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
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)});Lanjutkan dari Electron Updater API Referensi
Bagian berjudul “Lanjutkan 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.