Как показать индикатор выполнения в окне при загрузке в электронном обновлении - PullRequest
2 голосов
/ 22 марта 2019

Я разрабатываю свое приложение с помощью электрона, и я использую электронный обновитель, чтобы показать окно, которое спрашивает пользователя, хочет ли он загрузить новую версию приложения или нет. Я пытался показать в окне индикатор выполнения во время загрузки, как это. progress-bar

Я пытался использовать прогресс-бар, но если я его установлю, электронный апдейтер перестанет работать. Теперь я вижу прогресс только в режиме dev в электронной оболочке.

autoUpdater.on('download-progress', (progressObj) => {
    let log_message = "Scaricamento aggiornamenti in corso...  \n";
    log_message = log_message +  "Velocita\' scaricamento: " + 
        progressObj.bytesPerSecond;
    log_message = log_message + ' - Scaricati ' + progressObj.percent + '%';
    log_message = log_message + ' (' + progressObj.transferred + "/" + 
        progressObj.total + ')';
    log.log('info', log_message);
})

Заранее спасибо

1 Ответ

0 голосов
/ 13 апреля 2019

(я не на 100% понимаю, о чем вы спрашиваете, и у меня недостаточно репутации, чтобы добавить комментарий ... поэтому я сделаю все возможное)

Я предполагаю, что autoUpdaterв основном процессе, а не в рендерере.Итак, первое, что вам нужно сделать, это получить данные от обновления процесса до правильного средства визуализации.Вы можете сделать это с помощью модулей ipcMain и ipcRenderer электрона.

Когда у вас есть данные в процессе рендеринга, вам нужно поместить их в индикатор выполнения.Если вы используете redux, вы можете вызвать dispatch () вашего магазина, передав ему действие downloadProgress.

В моем приложении, которое использует redux, я создаю действие DownloadProgress в основном процессе и отправляю егочерез IPC для рендера.Я бы порекомендовал сделать то же самое, поскольку вы, вероятно, захотите также выполнить действия DownloadCancelled и DownloadComplete.

Если это не поможет, уточните следующее:

  • пожалуйста, добавьте код, который не обрабатывает ваш вопрос - это поможет вам более точно понять, что вы пытаетесь сделать
  • - это автообновление, запущенное в основном процессе или в рендерере
  • какую реализацию индикатора выполнения вы используете (пакет npm?) И как вы будете отправлять в него данные (напрямую или через магазин?)
...