Skip to main content

autoUpdater

Habilita aplicações a se atualizarem automaticamente.

Processo: Main

See also: A detailed guide about how to implement updates in your application.

autoUpdater é um EventEmitter.

Avisos de plataforma

Atualmente, apenas o macOS e o Windows são suportados. Não há suporte nativo para o atualizador automático no Linux - portanto, recomendamos usar o gerenciador de pacotes da distribuição para atualizar seu app.

Além disso, existem algumas diferenças sutis em cada plataforma:

macOS

No macOS, o módulo autoUpdater é construído em cima do Squirrel.Mac, ou seja, você não precisa de nenhuma configuração especial para que funcione. Para os requisitos do lado do servidor, você pode ler o Suporte do servidor. Observe que o App Transport Security (ATS) aplica-se a todas as solicitações feitas como parte do processo de atualização. Aplicações que precisam desativar o ATS podem adicionar a chave NSAllowsArbitraryLoads no plist de sua aplicação.

Nota: Seu aplicativo precisa estar assinado para que seja automaticamente atualizado no macOS. Isto é um requisito do Squirrel.Mac.

Windows

On Windows, you have to install your app into a user's machine before you can use the autoUpdater, so it is recommended that you use the electron-winstaller, electron-forge or the grunt-electron-installer package to generate a Windows installer.

When using electron-winstaller or electron-forge make sure you do not try to update your app the first time it runs (Also see this issue for more info). Também é recomendado utilizar o electron-squirrel-startup para obter atalhos da área de trabalho para sua aplicação.

The installer generated with Squirrel will create a shortcut icon with an Application User Model ID in the format of com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE, examples are com.squirrel.slack.Slack and com.squirrel.code.Code. Você deve usar o mesmo ID para sua aplicação com a API app.setAppUserModelId, caso contrário, o Windows não será capaz de fixar sua aplicação corretamente na barra de tarefas.

Like Squirrel.Mac, Windows can host updates on S3 or any other static file host. You can read the documents of Squirrel.Windows to get more details about how Squirrel.Windows works.

Eventos

O objeto autoUpdater emite os seguintes eventos:

Evento: 'error'

Retorna:

  • Erro error

Emitido quando há um erro durante a atualização.

Evento: 'checking-for-update'

Emitido ao verificar se uma atualização começou.

Evento: 'update-available'

Emitido quando houver uma atualização disponível. A atualização é baixada automaticamente.

Evento: 'update-not-available'

Emitido quando não há atualização disponível.

Evento: 'update-downloaded'

Retorna:

  • event Event
  • String releaseNotes
  • String releaseName
  • Data releaseDate
  • String updateURL

Emitido quando uma atualização foi baixada.

No Windows apenas o releaseName está disponível.

Nota: Não é estritamente necessário tratar este evento. Uma atualização baixada com sucesso ainda será aplicada na próxima vez que o aplicativo iniciar.

Evento: 'before-quit-for-update'

Este evento é emitido depois de um usuário chamar quitAndInstall().

Quando esta API é chamada, o evento before-quit não é emitido antes de todas as janelas serem fechadas. Como resultado, você deve ouvir este evento se você deseja executar ações antes das janelas serem fechadas enquanto um processo é encerrado, Além de ouvir before-quit.

Métodos

O objeto autoUpdater possui os seguintes métodos:

autoUpdater.setFeedURL(options)

  • options Object
    • String url
    • headers Record<String, String> (optional) macOS - HTTP request headers.
    • serverType String (optional) macOS - Can be json or default, see the Squirrel.Mac README for more information.

Define a url e inicializa a atualização automática.

autoUpdater.getFeedURL()

Returns String - The current update feed URL.

autoUpdater.checkForUpdates()

Pergunta para o servidor se há alguma atualização. Você precisa chamar o 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 o aplicativo e instala a atualização após ela ter sido baixada. Deve ser chamado apenas após o evento update-downloaded ter sido emitido.

Sob o capô chamando autoUpdater.quitAndInstall() fechará todos os aplicativos janelas primeiro, e automaticamente chamar app.quit() depois de todas as janelas foram Fechado.

Nota: Não é estritamente necessário para lidar com este evento. Uma atualização baixada com sucesso ainda será aplicada na próxima vez que o aplicativo for iniciado.