ElectronJs — Configurando auto-update

Paloma Macetko
2 min readDec 16, 2023

--

Olá Gente!

No tutorial anterior aprendemos a compilar nossa aplicação criada em ElectronJs utilizando o Github Action e criar um release com a compilação.

Hoje iremos configurar para que nossa aplicação atualize automaticamente sempre que um novo release for criado.

Em minha aplicação utilizo o Electron Forge para facilitar as ações, recomendo muito a utilização:

Não precisamos instalar nada adicional, o próprio ElectronJs já possui os recursos para configurar o AutoUpdate.

Para identificar as novas versões iremos utilizar o https://update.electronjs.org/ que busca as versões com base nos release.

Dentro de nosso arquivo main.js carrega o “autoUpdater” e o “Notification” do repositório “electron”:

import { Notification, autoUpdater } from 'electron';

Agora iremos configurar uma função para facilitar as ações de AutoUpdate:

function setupUpdate()
{

const FeedUrl = 'https://update.electronjs.org/[UsuarioGit]/[RepositorioGit]/' + process.platform + '-' + process.arch + '/' + app.getVersion();

try {

autoUpdater.setFeedURL(FeedUrl)

autoUpdater.on('update-downloaded', (event, releaseNotes, releaseName, releaseDate, updateURL) => {

const dialogOpts = {
type: 'info',
buttons: ['Reiniciar Agora', 'Reiniciar Depois'],
title: 'Atualização Automática',
message: process.platform === 'win32' ? releaseNotes : releaseName,
detail: 'Uma nova versão do Aplicativo foi Instalada. Reinicie o Aplicativo para iniciar a nova versão'
};

dialog.showMessageBox(dialogOpts).then(({ response }) => {

if(response === 0)
{

autoUpdater.quitAndInstall();

}

})
});

autoUpdater.checkForUpdates()

setInterval(() => {

autoUpdater.checkForUpdates()

}, ( 1 * 60 * 60 * 1000 ))

}catch (err){

//

}

}

Aqui precisamos antes configurar a variável FeedUrl, que é a Url de onde serão checadas as atualizações.

Neste link:

  • [UsuarioGit]: Seu usuário do GitHub
  • [RepositorioGit]: O nome do repositório no GitHub

Podemos também alterar o tempo de checagem, no “setInterval”.

Para este exemplo, esta configurado para 1 hora:

1 * 60 * 60 * 1000

Agora iremos colocar a chamada desta função dentro do evento “ready”:

app.on('ready', () => {

setupUpdate();

});

Por hoje é isto, queridos desenvolvedores! 👩‍💼

Até logo! 👋

--

--

Paloma Macetko
Paloma Macetko

Written by Paloma Macetko

🏳️‍🌈 Mulher Trans 💻 Desenvolvedora Web

No responses yet