Referencia del Actualizador de Electron API
Copia una línea de comando con los pasos de instalación y la guía markdown completa para este plugin.
Esta página documenta todos los métodos, eventos y opciones de configuración disponibles para el Actualizador de Electron.
Métodos de Núcleo
Sección titulada “Métodos de Núcleo”Notificar lista de aplicaciones lista()
Sección titulada “Notificar lista de aplicaciones lista()”Deberá llamarse en cada lanzamiento de la aplicación. Confirma que el paquete se ha cargado con éxito y evita el rollback automático.
await updater.notifyAppReady();descargar(opciones)
Sección titulada “descargar(opciones)”Descargar un paquete desde una 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});Parámetros:
| Opción | Tipo | Requerido | Descripción |
|---|---|---|---|
url | cadena | Sí | URL para descargar el paquete desde |
version | cadena | Sí | Identificador de versión para el paquete |
checksum | string | No | Checksum SHA256 para verificar |
sessionKey | string | No | Clave de sesión para paquetes cifrados |
Devuelve: BundleInfo objeto con id, version, status
next(options)
Título de sección “next(options)”Coloque un paquete en cola para cargar en el próximo reinicio de la aplicación.
await updater.next({ id: 'bundle-id' });Parámetros:
| Opción | Tipo | Requerido | Descripción |
|---|---|---|---|
id | cadena | Sí | ID de paquete para agregar a la cola |
set(options)
Sección titulada “set(options)”Cambiar inmediatamente a un paquete y recargar la aplicación.
await updater.set({ id: 'bundle-id' });Parámetros:
| Opción | Tipo | Requerido | Descripción |
|---|---|---|---|
id | cadena | Sí | Identificador de paquete para activar |
reload()
Sección titulada “reload()”Recargar manualmente la aplicación con el paquete actual.
await updater.reload();delete(options)
Sección titulada “delete(options)”Eliminar una paquete de almacenamiento.
await updater.delete({ id: 'bundle-id' });Parámetros:
| Opción | Tipo | Requerido | Descripción |
|---|---|---|---|
id | string | Sí | ID de paquete a eliminar |
reset(options)
Sección titulada “reset(options)”Restablecer a la versión predeterminada o la última paquete exitoso.
// Reset to builtinawait updater.reset({ toLastSuccessful: false });
// Reset to last successful bundleawait updater.reset({ toLastSuccessful: true });Parámetros:
| Opción | Tipo | Requerido | Descripción |
|---|---|---|---|
toLastSuccessful | booleano | No | Si es verdadero, restablecer a la última paquete exitoso en lugar de la predeterminada |
Información del paquete
Sección titulada “Información del paquete”actual()
Sección titulada “actual()”Obtenga información sobre el paquete actual y la versión nativa.
const info = await updater.current();// { bundle: { id, version, status }, native: '1.0.0' }listar(opciones)
Sección titulada “listar(opciones)”Liste todos los paquetes descargados.
const bundles = await updater.list();// [{ id, version, status, downloaded, checksum }, ...]obtenerSiguientePaquete()
Sección titulada “obtenerSiguientePaquete()”Obtenga la paquete programada para la próxima reinicialización.
const next = await updater.getNextBundle();// { id, version, status } or nullgetFailedUpdate()
Título de la sección “getFailedUpdate()”Obtenga información sobre la última actualización fallida (útil para depurar los retrocesos).
const failed = await updater.getFailedUpdate();// { id, version, reason } or nullgetBuiltinVersion()
Título de la sección “getBuiltinVersion()”Obtenga la versión embarcada con el binario de la aplicación.
const version = await updater.getBuiltinVersion();// '1.0.0'Verificación de actualizaciones
Título de la sección “Verificación de actualizaciones”getLatest(options)
Sección titulada “getLatest(options)”Verifique el servidor para la versión más reciente disponible.
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);}Devuelve:
| Propiedad | Tipo | Descripción |
|---|---|---|
url | cadena | URL de descarga (vacía si no hay actualización) |
version | cadena | Versión disponible |
checksum | string | checksum SHA256 |
sessionKey | string | clave de sesión de cifrado |
error | string | mensaje de error si la comprobación falló |
message | string | mensaje del servidor |
Gestión de canales
Título de la sección “Gestión de canales”setChannel(options)
Título de la sección “setChannel(options)”Asignar el dispositivo a un canal específico.
await updater.setChannel({ channel: 'beta' });unsetChannel(options)
Sección titulada “unsetChannel(options)”Quitar la asignación de canal y usar el valor por defecto.
await updater.unsetChannel();getChannel()
Sección titulada “getChannel()”Obtener la asignación de canal actual.
const channel = await updater.getChannel();// { channel: 'production', status: 'set' }listChannels()
Sección titulada “listChannels()”Listar todos los canales disponibles para esta aplicación.
const channels = await updater.listChannels();// ['production', 'beta', 'staging']Condiciones de retraso
Sección titulada “Condiciones de retraso”Controlar cuándo se aplican actualizaciones descargadas.
setMultiDelay(options)
Sección titulada “setMultiDelay(options)”Establecer condiciones que deben cumplirse antes de que se aplique una actualización.
// 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' } ]});Tipos de condiciones de retraso:
| Tipo | Valor | Descripción |
|---|---|---|
background | Duración opcional (ms) | Esperar a que la aplicación esté en segundo plano |
kill | - | Esperar a que la aplicación esté muerta y se reinicie |
date | Cadena de fecha ISO | Esperar hasta una fecha/hora específica |
nativeVersion | Cadena de versión | Esperar a que se actualice la aplicación nativa |
cancelDelay()
Sección titulada “cancelDelay()”Eliminar todas las condiciones de retraso y aplicar la actualización de inmediato en la próxima verificación.
await updater.cancelDelay();Identificación de Dispositivo
Sección titulada “Identificación de Dispositivo”getDeviceId()
Sección titulada “getDeviceId()”Obtenga el identificador único del dispositivo.
const deviceId = await updater.getDeviceId();// 'uuid-xxxx-xxxx-xxxx'setCustomId(options)
Sección titulada “setCustomId(options)”Establezca un identificador personalizado para el dispositivo (útil para análisis).
await updater.setCustomId({ customId: 'user-123' });Configuración
Sección titulada “Configuración”setUpdateUrl(opciones)
Sección titulada “setUpdateUrl(opciones)”Cambie la URL del servidor de actualizaciones en tiempo de ejecución.
await updater.setUpdateUrl({ url: 'https://my-server.com/updates' });setStatsUrl(opciones)
Sección titulada “setStatsUrl(opciones)”Cambie la URL de informes de estadísticas.
await updater.setStatsUrl({ url: 'https://my-server.com/stats' });establecer la URL del canal (options)
Sección titulada “establecer la URL del canal (options)”Cambie la URL de gestión del canal.
await updater.setChannelUrl({ url: 'https://my-server.com/channel' });establecer el ID de la aplicación (options)
Sección titulada “establecer el ID de la aplicación (options)”Cambie el ID de la aplicación en tiempo de ejecución.
await updater.setAppId({ appId: 'com.example.newapp' });getAppId()
Sección titulada “getAppId()”Obtenga el ID de la aplicación actual.
const appId = await updater.getAppId();Depuración
Sección titulada “Depuración”setDebugMenu(options)
Sección titulada “setDebugMenu(options)”Habilite o deshabilite el menú de depuración.
await updater.setDebugMenu({ enabled: true });isDebugMenuEnabled()
Sección titulada “isDebugMenuEnabled()”Verificar si el menú de depuración está habilitado.
const enabled = await updater.isDebugMenuEnabled();Eventos
Sección titulada “Eventos”Escuchar eventos de actualización utilizando addListener:
updater.addListener('eventName', (event) => { // Handle event});Eventos Disponibles
Sección titulada “Eventos Disponibles”| Evento | Payload | Descripción |
|---|---|---|
download | { percent, status } | Actualizaciones de progreso de descarga |
updateAvailable | { bundle } | Actualización disponible |
noNeedUpdate | { message } | Actualizado |
downloadComplete | { bundle } | Descarga finalizada con éxito |
downloadFailed | { bundle, error } | Descarga fallida |
breakingAvailable | { bundle } | Actualización incompatible (requiere actualización nativa) |
updateFailed | { bundle, reason } | Falló la instalación de la actualización |
appReloaded | {} | Se ha recargado la aplicación |
appReady | {} | notifyAppReady() se llamó |
Ejemplo: Manejo completo de eventos
Título de la sección “Ejemplo: Manejo completo de eventos”// 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);});Opciones del constructor
Opción de constructorOpciones de configuración completa para 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)});Continuar desde Electron Updater API Referencia
Sección titulada “Continuar desde Electron Updater API Referencia”Si está utilizando Referencia de Electron Updater API para planificar la consola y las operaciones API, conecte con Usando @capgo/electron-updater para la capacidad nativa en Usando @capgo/electron-updater, Resumen de API para el detalle de implementación en Resumen de API Introducción para los detalles de implementación en Introducción API Claves para los detalles de implementación en API Claves, y Dispositivos para los detalles de implementación en Dispositivos.