Индикатор выполнения электронного автообновления

есть ли способ настроить индикатор выполнения для загрузки нового обновления приложения в Electron? Я разрабатываю приложение для Windows, используя Squirrel и electron-simple-updater, и моя проблема в том, что средство обновления выдает события только тогда, когда оно начинает загружать обновление и когда оно завершается. Мое обновление довольно большое (около 80 МБ), и для пользователей с медленными интернет-провайдерами это вроде как sux :(


person Pirozek    schedule 10.01.2017    source источник
comment
Ищу то же самое, гугл не помогает ...   -  person GWorking    schedule 04.05.2017
comment
То же самое ... 'загрузка-прогресс' не запускается с помощью электронного простого-обновления. Удалось найти обходной путь?   -  person MarBVI    schedule 13.09.2017
comment
@MarBVI нет, я застрял здесь. Очень плохо, что если вам нужна эта простая вещь, вы должны делать всю работу самостоятельно, то есть создавать свою собственную программу обновления. Вот где, возможно, я закончу, потому что, похоже, нет жизнеспособных решений для этой проблемы :(   -  person Pirozek    schedule 14.09.2017
comment
Собственно даже не могу скачать обновление. Я получаю сообщение об ошибке Не могу найти белку. Я также использую electrin-simple-updater и создаю свой .exe с помощью electronic-builder. Вы можете мне помочь?   -  person MarBVI    schedule 14.09.2017


Ответы (2)


const log = require('electron-log');
const { autoUpdater } = require("electron-updater");
autoUpdater.logger = log;
log.info('App starting...');    
autoUpdater.on('download-progress', (progressObj) => {
    let log_message = "Download speed: " + progressObj.bytesPerSecond;
    log_message = log_message + ' - Downloaded ' + progressObj.percent + '%';
    log_message = log_message + ' (' + progressObj.transferred + "/" + progressObj.total + ')';
    sendStatusToWindow(log_message);
})

function sendStatusToWindow(text) {
    log.info(text);
    homePageWindow.webContents.send('message', text);
}

С помощью этого кода можно увидеть журнал, чтобы увидеть, как идет загрузка

person Darshan Jain    schedule 05.02.2019
comment
ПРИМЕЧАНИЕ. Пакет require("electron-updater") предназначен исключительно для Electron Builder, а не для собственного Electron. Если вы не используете Electron Builder, вы не можете импортировать и использовать этот пакет, как показано здесь. - person Joshua Pinter; 18.03.2019
comment
Есть ли способ избавиться от всех десятичных знаков на progressObj.percent? - person futurelucas4502; 22.04.2020

Может быть, эта ссылка дает то, что вы хотите

https://github.com/iffy/electron-updater-example/blob/master/main.js

autoUpdater.on('download-progress', (ev, progressObj) => {
  sendStatusToWindow('Download progress...');
})
person GWorking    schedule 04.05.2017
comment
это не использует белку - person CMS; 08.07.2018
comment
Обратите внимание: похоже, это не работает с собственным автообновлением Electron: electronicjs.org/docs/api/ автоматическое обновление - person Joshua Pinter; 17.01.2019
comment
@joshuapinter Правильно, это не для автообновления электронов. Скорее всего, это для настраиваемого автоматического средства обновления Electron Builder. - person Joshua Pinter; 18.03.2019