我正在使用squirrel在我的Electron应用程序中实现autoupdate。下载更新后,我向用户显示一个对话框,为他们提供两个选项:
autoUpdater.quitAndInstall()
)选项1 - 相当安装现在工作正常,但我无法获得选项2 - 在下次应用启动时安装 - 工作。
理想的行为是,如果用户选择稍后安装,则会在下次启动应用时立即安装更新。
在我的应用中,我处理autoUpdater update-downloaded
事件。应用程序启动时我也调用了checkForUpdates
。我假设如果更新被忽略,那么当下次启动应用程序时,对checkForUpdates
的调用将导致松鼠注意到现有的下载,发出update-downloaded
事件并再次询问用户是否想要安装更新。但是,不会发出update-downloaded
事件。
其次,如果用户稍后选择安装,我会在userData
文件上写下一个标记,告诉应用下次启动应用时调用autoUpdater.quitAndInstall
。这会产生错误,因为只有在update-downloaded
发出后才能调用此方法。
那我怎么能让它发挥作用呢?我是否需要以某种方式删除现有下载,以便在下次启动应用时再次下载?这看起来不对。
答案 0 :(得分:0)
当应用启动时调用autoUpdater.checkForUpdates();
:
autoUpdater.addListener("update-downloaded", function () {
if (userData flag) {
autoUpdater.quitAndInstall();
}
});
autoUpdater.setFeedURL('autoUpdaterFeedUrl');
autoUpdater.checkForUpdates();