Saltar al contenido principal

autoUpdater

Enable apps to automatically update themselves.

Proceso: principal</0>

Puedes Ver: Una guía detallada sobre cómo implementar las actualizaciones en su aplicación.

autoUpdater es un EventEmitter.

Noticias de la plataforma

Actualmente, sólo macOS y Windows son soportados. No hay soporte para auto actualizaciones en Linux, por lo que es recomendable que use el gestor de paquetes de la distribución para actualizar su aplicación.

Adicionalmente, hay algunas diferencias sutiles en cada plataforma:

macOS

En macOS, el módulo autoUpdater está construido sobre Squirrel.Mac, lo que significa que no necesita ninguna configuración especial para que funcione. Para los requisitos de servidor, puede leer Soporte de servidor. Tenga en cuenta que App Transport Security (ATS) se aplica para todas las solicitudes creadas como parte del proceso de actualizaciones. Aplicaciones que necesitan para desactivar ATS pueden agregar la clave de NSAllowsArbitraryLoads a su .plist de su aplicación.

Nota: Su aplicación debe ser firmada para actualizaciones automáticas en macOS. Este es un requerimiento de Squirrel.Mac.

Windows

En Windows, tienes que instalar tu aplicación en el equipo del usuario antes de usar el autoUpdater, por lo que se recomienda que utilice el paquete electron-winstaller, Electron Forge o grunt-electron-installer para generar el instalador de Windows.

Cuando usas electron-winstaller o Electron Forge asegurate de no intentar actualizar tu aplicación en la primera ves que se ejecuta (Véase también este issue en github). Se recomienda usar electron-squirrel-startup para obtener acceso directo en el escritorio para su aplicación.

El instalador generado con Squirrel se creara un acceso directo a un icono con una Application User Model ID en el formato igual a este com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE ejemplos: com.squirrel.slack.Slack y <1>com.squirrel.code.Code</1> Tu debes usar el mismo ID de tu aplicación con app.setAppUserModelId API, de lo contrario Windows no podría ejecutarlo correctamente en la barra de tareas.

Al igual que Squirrel.Mac, Windows puede alojar actualizaciones en S3 o cualquier otro host estático. puedes leer la documentación de Squirrel.Windows para obtener más detalles sobre el funcionamiento de esto.

Eventos

El objeto app emite los siguientes eventos:

Evento: "error"

Devuelve:

  • error Error

Aparece cuando hay un error al actualizar.

Evento: "comprobar si hay actualizaciones"

Aparece al comprobar si una actualización ya ha empezado.

Evento: "actualización disponible"

Emitido cuando hay una actualización disponible. La actualización es descargada automáticamente.

Evento: 'update-not-available'

Aparece cuando no hay una actualización disponible.

Evento: "actualización descargada"

Devuelve:

  • event
  • releaseNotes string
  • releaseName string
  • releaseDate Date
  • updateURL string

Aparece cuando se ha descargado una actualización.

Solo esta disponible en Windows releaseName.

Nota: No es estrictamente necesario manejar este evento. Una actualización descargada con éxito se aplicará la próxima vez que la aplicación inicie.

Evento: 'before-quit-for-update'

Este evento se ejecuta luego que un usuario llama al método: quitAndInstall().

Cuando se hace el llamado a la API, el evento before-quit no se ejecuta hasta que todas las ventanas estén cerradas. Como resultado usted debe escuchar a este evento si desea realizar acciones antes de que las ventanas sean cerradas, mientras el proceso está finalizando, así como también escuchar al proceso: before-quit.

Métodos

El objeto autoUpdater tiene los siguientes métodos:

autoUpdater.setFeedURL(options)

  • options Object
    • url string
    • headers Record<string, string\> (optional) macOS - HTTP request headers.
    • serverType string (opcional) macOS - Puede ser json o default, vea el README de Squirrel.Mac para más información.

Configura el url e inicializa la actualización automática.

autoUpdater.getFeedURL()

Devuelve string - URL actual para la actualización.

autoUpdater.checkForUpdates()

Pregunta al servidor si hay una actualización. Debes llamar a setFeedURL antes de usar esta API.

Note: If an update is available it will be downloaded automatically. Calling autoUpdater.checkForUpdates() twice will download the update two times.

autoUpdater.quitAndInstall()

Reinicia la aplicación e instala la actualización después que esta ha sido descargada. Sólo debería llamarse después de que update-downloaded ha sido emitido.

Llamar a autoUpdater.quitAndInstall() bajo la capucha cerrará todas las ventanas de la aplicación, y llamará automáticamente a app.quit() después de que se hayan cerrado todas las ventanas.

Note: No es estrictamente necesario llamar esta función para aplicar una actualización, como una actualización fue descargada con éxito siempre será actualizada la próxima vez que la aplicación inicie.