autoUpdater.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. 'use strict';
  2. const updater = require("electron-updater");
  3. const autoUpdater = updater.autoUpdater;
  4. const config = require('../config');
  5. const {app} = require('electron');
  6. const eLogger = require('./eLogger').get();
  7. const helper = require('./helper');
  8. /**
  9. * 安装模块
  10. */
  11. exports.setup = function () {
  12. console.log('[electron-lib-autoUpater] [setup]');
  13. const version = app.getVersion();
  14. eLogger.info('[autoUpdater] [setup] current version: ', version);
  15. const platformObj = helper.getPlatform();
  16. const updateConfig = config.get('autoUpdate');
  17. let server = updateConfig.options.url;
  18. server = `${server}${platformObj.platform}/`;
  19. eLogger.info('[autoUpdater] [setup] server: ', server);
  20. updateConfig.options.url = server;
  21. try {
  22. autoUpdater.setFeedURL(updateConfig.options);
  23. } catch (error) {
  24. eLogger.error('[autoUpdater] [setup] setFeedURL error : ', error);
  25. }
  26. autoUpdater.on('checking-for-update', () => {
  27. sendStatusToWindow('Checking for update...');
  28. })
  29. autoUpdater.on('update-available', (info) => {
  30. sendStatusToWindow('Update available.');
  31. })
  32. autoUpdater.on('update-not-available', (info) => {
  33. sendStatusToWindow('Update not available.');
  34. })
  35. autoUpdater.on('error', (err) => {
  36. sendStatusToWindow('Error in auto-updater. ' + err);
  37. })
  38. autoUpdater.on('download-progress', (progressObj) => {
  39. let log_message = "Download speed: " + progressObj.bytesPerSecond;
  40. log_message = log_message + ' - Downloaded ' + progressObj.percent + '%';
  41. log_message = log_message + ' (' + progressObj.transferred + "/" + progressObj.total + ')';
  42. sendStatusToWindow(log_message);
  43. })
  44. autoUpdater.on('update-downloaded', (info) => {
  45. sendStatusToWindow('Update downloaded');
  46. // quit and update
  47. helper.appQuit();
  48. autoUpdater.quitAndInstall();
  49. });
  50. };
  51. exports.checkUpdate = function () {
  52. autoUpdater.checkForUpdatesAndNotify();
  53. }
  54. function sendStatusToWindow(text) {
  55. eLogger.info(text);
  56. MAIN_WINDOW.webContents.send('message', text);
  57. }
  58. exports = module.exports;