【问题标题】:Electron Application Cannot find Squirrel电子应用程序找不到松鼠
【发布时间】:2016-03-13 21:56:12
【问题描述】:

我正在使用autoUpdater API 为 Windows 编写具有自动更新功能的 Electron 应用程序。

app.on('ready', function(){
  console.log('application emitted "ready"');

  var autoUpdater = require('auto-updater');

  autoUpdater.setFeedURL(releaseUrl);
  console.log('releaseUrl: ' + releaseUrl);

  autoUpdater
    .on('error', function(){
      console.log(arguments);
    })
    .on('checking-for-update', function() {
      console.log('Checking for update');
    })
    .on('update-available', function() {
      console.log('Update available');
    })
    .on('update-not-available', function() {
      console.log('Update not available');
      createWindow();
    })
    .on('update-downloaded', function() {
      console.log('Update downloaded');
    });

  autoUpdater.checkForUpdates();

});

到目前为止,我可以触发的唯一事件是错误事件,它会注销此消息:

{ '0': [Error: Can not find Squirrel],
  '1': 'Can not find Squirrel' }

我应该安装一些 Squirrel 软件包吗?我在文档中找不到任何关于为 Squirrel 安装额外软件包的内容。

这是在电子 v0.36.0 中

【问题讨论】:

  • 嗨,你做了自动更新吗?
  • @Ng2-Fun 是的,对于 Windows,需要使用 grunt electron installer github.com/electron/grunt-electron-installer将应用程序打包到一个安装程序可执行文件中
  • 谢谢@user231300。自动更新以某种方式工作。但是我会弹出一个窗口让用户在“更新可用”中选择他是现在还是以后更新。我可以使用dialog.showMessageBox({ message: "Update available. Do you want to update now or later", buttons: ["Update", "Not Now"] }, function (choice) { if (choice === 0) {...} else {...} 弹出窗口,但问题是每当有新更新时,它都会自动下载。如果用户现在选择不安装,我无法阻止它。

标签: javascript auto-update electron


【解决方案1】:

如果您的应用未安装,则调用 Squirrel 将不起作用。您需要有一个已安装的应用程序。

【讨论】:

  • 有没有简单的方法来检查您的应用是否已安装?而不是通过electron .运行它?
  • process.execPath.match(/[\\\/]electron-prebuilt/)
  • 但是如何在开发自动更新程序时安装应用程序?很明显,在开发过程中打包app并测试它是不合逻辑的
猜你喜欢
  • 2021-10-06
  • 2018-07-13
  • 2016-12-07
  • 2019-03-29
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 1970-01-01
  • 2017-02-02
相关资源
最近更新 更多