Ir para o conteúdo principal

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.

O instalador gerado com o Squirrel criará um ícone de atalho com um ID de Modelo da Aplicação do Usuário no formato com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE, são exemplos com.squirrel.slack.Slack e 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. Você pode ler a documentação do Squirrel.Windows para obter mais detalhes sobre como funciona o Squirrel.Windows.

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
    • url string
    • headers Record<string, string> (optional) macOS - HTTP request headers.
    • serverType string (opcional) macOS - Pode ser json ou default. Consulte o README do Squirrel.Mac para mais informações.

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.