如何保存下载的更新以便以后安装?



我正在使用松鼠在我的Electron应用程序中实现自动更新。下载更新后,我向用户显示一个对话框,为他们提供两个选项:

  1. 退出应用程序并立即安装更新(使用autoUpdater.quitAndInstall())
  2. 暂时搁置更新并在下次应用程序启动时安装它

选项1 - 相当和安装现在工作正常,但我无法让选项 2 - 在下次应用程序启动时安装 - 工作。

所需的行为是,如果用户选择稍后安装,则下次启动应用时会立即安装更新。

在我的应用程序中,我处理自动更新程序update-downloaded事件。我还在应用程序启动时调用了checkForUpdates。我假设如果忽略更新,那么当应用程序下次启动时,对checkForUpdates的调用将导致松鼠注意到现有下载,发出update-downloaded事件,用户将再次被询问是否要安装更新。但是,不会发出update-downloaded事件。

其次,如果用户选择稍后安装,我会向userData文件写入一个标志,告诉应用在下次启动应用时调用autoUpdater.quitAndInstall。这会产生错误,因为此方法只能在发出update-downloaded后调用。

那么我怎样才能让它工作呢?我是否需要以某种方式删除现有下载,以便在下次启动应用程序时再次下载?这似乎不对。

当应用像这样启动时调用autoUpdater.checkForUpdates();

autoUpdater.addListener("update-downloaded", function () {
if (userData flag) {
autoUpdater.quitAndInstall();
}
});
autoUpdater.setFeedURL('autoUpdaterFeedUrl');
autoUpdater.checkForUpdates();

最新更新