寻找有关更新安装的电子应用程序的完整教程

时间:2016-08-03 16:52:39

标签: electron

我已经阅读了很多关于这个子喷气机的信息,但我找不到完整的文档。 我成功地使用了电子包装器和电子winstaller来获取我的电子应用程序的setup.exe。 我使用电子发布服务器来创建一个服务器来托管我的电子应用程序进行部署。

我在电子应用程序中添加了代码的和平

const autoUpdater = electron.autoUpdater;
var feedUrl = 'http://10.61.32.53:1337//download/:' + app.getVersion();
autoUpdater.setFeedURL(feedUrl);
// event handling after download new release
autoUpdater.on('update-downloaded', function (event, releaseNotes,       releaseName, releaseDate, updateUrl, quitAndUpdate) {

// confirm install or not to user
var index = dialog.showMessageBox(mainWindow, {
type: 'info',
buttons: [i18n.__('Restart'), i18n.__('Later')],
title: "Typetalk",
message: i18n.__('The new version has been downloaded. Please restart the application to apply the updates.'),
detail: releaseName + "\n\n" + releaseNotes
});

if (index === 1) {
   return;
}

// restart app, then update will be applied
 quitAndUpdate();
} );

但是当我安装我的应用程序时,我有这个错误:

exception

事实上,我认为我不知道该做什么客户端,但服务器端也是如此。任何帮助将非常感谢! 提前致谢

1 个答案:

答案 0 :(得分:0)

我在我的版本中使用了以下功能(托盘图标除外):

  app.on('ready', () => {
    console.warn("Starting Autoupdater")
    console.warn(app.getVersion())
    var feedUrl = 'http://ls-desktop.herokuapp.com/update/' + os.platform() + '/' + app.getVersion() + '/';
    autoUpdater.setFeedURL(feedUrl);

    tray = new Tray(__dirname + '/LS.png')
    console.log(__dirname + '/LS.png')

    console.log('created');
    autoUpdater.on('checking-for-update', function() {
      tray.displayBalloon({
        title: 'Autoupdater',
        content: 'Checking for Update!'
      })
    });

    autoUpdater.on('update-available', function() {
        console.log("update-available");
    });

    autoUpdater.on('update-not-available', function() {
      tray.displayBalloon({
        title: 'Autoupdater',
        content: 'No Updates availible!'
      })
    });

    autoUpdater.on('update-downloaded', function() {
        console.log(" update-downloaded");
    });

    setTimeout(function() {autoUpdater.checkForUpdates()}, 10000);

    autoUpdater.on('update-downloaded', function (event, releaseNotes, releaseName, releaseDate, updateUrl, quitAndUpdate) {

      var index = dialog.showMessageBox({
        type: 'info',
        buttons: ['Restart', 'Later'],
        title: "Lornsenschule Vertretungsplan",
        message: ('The new version has been downloaded. Please restart the application to apply the updates.'),
        detail: releaseName + "\n\n" + releaseNotes
      });

      if (index === 1) {
        return;
      }

      quitAndUpdate()
    });
  })

请注意setTimeout(function() {autoUpdater.checkForUpdates()}, 10000);这是我使用的真正解决方法。其余的只是一个很好的补充我认为