一种基于electron-updater完善自动更新的方法
文献发布时间:2024-04-18 19:58:53
技术领域
本申请涉及计算机技术领域,具体地,涉及一种基于electron-updater完善自动更新的方法。
背景技术
现有的常用于electron应用自动更新的方法是使用插件electron-updater,但是使用的过程中如果旧版本的安装路径与新版本的安装路径不同时设备上会出现两个不同版本的应用程序,给用户在使用electron应用时带来困扰。
发明内容
为了克服现有技术中的至少一个不足,本申请提供一种基于electron-updater完善自动更新的方法。
第一方面,提供一种基于electron-updater完善自动更新的方法,包括:
开发者调用electron-updater插件中的函数quitAndInstall;
应用程序electron的所有窗口触发close事件后,触发before-quit,并关闭所有窗口;
退出应用程序electron,并执行下载的新版本的安装包,执行完成后覆盖安装目录下旧版本的内容或者卸载旧版本后安装新版本,完成应用程序electron的更新。
在一个实施例中,执行下载的新版本的安装包,包括:
在项目根目录下创建installer.nsh文件;
在项目根目录下的package.json文件中添加打包配置,打包配置用于将installer.nsh文件包含到最终的nsis文件中;
在创建的installer.nsh文件中添加逻辑内容,并获取应用程序electron的旧版本的安装路径;逻辑内容为当旧版本的安装路径与新版本的安装路径相同时,直接安装新版本,否则,先卸载旧版本,再安装新版本;
判断旧版本的安装路径与新版本的安装路径是否相同,若相同,直接安装新版本;若不同,先卸载旧版本,再安装新版本。
第二方面,提供一种基于electron-updater完善自动更新的装置,包括:
函数调用模块,用于开发者调用electron-updater插件中的函数quitAndInstall;
事件触发模块,用于应用程序electron的所有窗口触发close事件后,触发before-quit,并关闭所有窗口;
更新模块,用于退出应用程序electron,并执行下载的新版本的安装包,执行完成后覆盖安装目录下旧版本的内容或者卸载旧版本后安装新版本,完成应用程序electron的更新。
在一个实施例中,更新模块,还用于:
在项目根目录下创建installer.nsh文件;
在项目根目录下的package.json文件中添加打包配置,打包配置用于将installer.nsh文件包含到最终的nsis文件中;
在创建的installer.nsh文件中添加逻辑内容,并获取应用程序electron的旧版本的安装路径;逻辑内容为当旧版本的安装路径与新版本的安装路径相同时,直接安装新版本,否则,先卸载旧版本,再安装新版本;
判断旧版本的安装路径与新版本的安装路径是否相同,若相同,直接安装新版本;若不同,先卸载旧版本,再安装新版本。
第三方面,提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时,以实现上述的基于electron-updater完善自动更新的方法。
第四方面,提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时,以实现上述的基于electron-updater完善自动更新的方法。
相对于现有技术而言,本申请具有以下有益效果:本申请的基于electron-updater完善自动更新的方法,应用程序更新安装时先检测新版本的安装路径与旧版本的安装路径是否相同,不同时删除旧版本,相同时则不做处理,避免出现两个不同版本的应用程序。
附图说明
本申请可以通过参考下文中结合附图所给出的描述而得到更好的理解,附图连同下面的详细说明一起包含在本说明书中并且形成本说明书的一部分。在附图中:
图1示出了根据本申请实施例的基于electron-updater完善自动更新的方法的流程框图;
图2示出了根据本申请实施例的基于electron-updater完善自动更新的装置的结构框图。
具体实施方式
在下文中将结合附图对本申请的示例性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施例的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中可以做出很多特定于实施例的决定,以便实现开发人员的具体目标,并且这些决定可能会随着实施例的不同而有所改变。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本申请,在附图中仅仅示出了与根据本申请的方案密切相关的装置结构,而省略了与本申请关系不大的其他细节。
应理解的是,本申请并不会由于如下参照附图的描述而只限于所描述的实施形式。在本文中,在可行的情况下,实施例可以相互组合、不同实施例之间的特征替换或借用、在一个实施例中省略一个或多个特征。
本申请实施例提供一种基于electron-updater完善自动更新的方法,图1示出了根据本申请实施例的基于electron-updater完善自动更新的方法的流程框图,参见图1,方法包括:
步骤S1,开发者调用electron-updater插件中的函数quitAndInstall;
步骤S2,应用程序electron的所有窗口触发close事件后,触发before-quit,并关闭所有窗口;
步骤S3,退出应用程序electron,并执行下载的新版本的安装包,执行完成后覆盖安装目录下旧版本的内容或者卸载旧版本后安装新版本,完成应用程序electron的更新。
在一个实施例中,执行下载的新版本的安装包,包括:
在项目根目录下创建installer.nsh文件;
在项目根目录下的package.json文件中添加打包配置,打包配置用于将installer.nsh文件包含到最终的nsis文件中;具体地,打包配置为:"build":{"nsis":{"include":"./installer.nsh"}}。
在创建的installer.nsh文件中添加逻辑内容,并获取应用程序electron的旧版本的安装路径;逻辑内容为当旧版本的安装路径与新版本的安装路径相同时,直接安装新版本,否则,先卸载旧版本,再安装新版本;
判断旧版本的安装路径与新版本的安装路径是否相同,若相同,直接安装新版本;若不同,先卸载旧版本,再安装新版本。
综上,本实施例的基于electron-updater完善自动更新的方法,应用程序更新安装时先检测新版本的安装路径与旧版本的安装路径是否相同,不同时删除旧版本,相同时则不做处理,避免出现两个不同版本的应用程序。
采用与基于electron-updater完善自动更新的方法相同的发明构思,本实施例还提供与之对应的基于electron-updater完善自动更新的装置,图2示出了根据本申请实施例的基于electron-updater完善自动更新的装置的结构框图,参见图2,装置包括:
函数调用模块21,用于开发者调用electron-updater插件中的函数quitAndInstall;
事件触发模块22,用于应用程序electron的所有窗口触发close事件后,触发before-quit,并关闭所有窗口;
更新模块23,用于退出应用程序electron,并执行下载的新版本的安装包,执行完成后覆盖安装目录下旧版本的内容或者卸载旧版本后安装新版本,完成应用程序electron的更新。
更新模块,还用于:
在项目根目录下创建installer.nsh文件;
在项目根目录下的package.json文件中添加打包配置,打包配置用于将installer.nsh文件包含到最终的nsis文件中;
在创建的installer.nsh文件中添加逻辑内容,并获取应用程序electron的旧版本的安装路径;逻辑内容为当旧版本的安装路径与新版本的安装路径相同时,直接安装新版本,否则,先卸载旧版本,再安装新版本;
判断旧版本的安装路径与新版本的安装路径是否相同,若相同,直接安装新版本;若不同,先卸载旧版本,再安装新版本。
本实施例的基于electron-updater完善自动更新的装置与上文的基于electron-updater完善自动更新的方法具有相同的发明构思,因此该装置的具体实施方式可见前文中的基于electron-updater完善自动更新的方法的实施例部分,且其技术效果与上述方法的技术效果相对应,这里不再赘述。
本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时,以实现上述的基于electron-updater完善自动更新的方法。
本申请实施例提供一种计算机程序产品,包括计算机程序/指令,计算机程序/指令被处理器执行时,以实现上述的基于electron-updater完善自动更新的方法。
以上所述,仅为本申请的各种实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
- 一种基于矢量路网融合与高分遥感影像验证的道路网自动更新方法
- 一种基于不完善异构关系网络图的风险预测方法及装置
- 一种基于分级抗锯齿的图像完善方法及装置