electron 热更新

1. electron自带的整体更新方式 (全量更新)
这种方式为electron官方的升级更新方式,主要是通过主进程中的autoUpdater模块进行检测升级更新的,此方式也是大家常见的大多数electron应用程序的更新方式。

检测到新版本后从服务器拉取 electron-builder生成的APP.zip文件,解压后,把*.app/*.exe 覆盖现有文件后重启(Mac端)/重新安装(PC端)。 这种更新的文件比较大,相当于删掉旧的,重新下载新APP后运行,对于小更新如文案,图片修改,并不友好

当用户打开app 时去校验是否时最新版本 如果不是 触发下载操作 下载完成后 关闭程序 启动安装 替换当前版本 (如果用户没有安装 下次打开应用时直接触发安装)

2. 在线热更新方式(只更新渲染进程相关,前端页面等资源,不更新主进程程序)
这种方式是只更新渲染前端相关资源,不会更新主进程相关的东西,所以下载更新的资源会很小,更新起来会很快,因为是在线热更新,更新完成后不用重新启动软件,只需刷新页面重新加载资源即可,所以,这种方式体验效果也比较好。

接下来说说热更新具体的实现

正常执行electron-builder进行打包,打包完成后将win-ia32-unpackedresourcesapp.asar下的文件压缩成dist.zip文件,上传到服务器;客户端每次重启执行一次检测更新,比较本地与远程服务器的版本,如有最新版本,则下载zip包,通过Node fs模块写入本地,解压覆盖到本地resources下文件

  1. 在渲染进程引入ipcRenderer,监听从主进程传过来的更新事件,应用启动后在渲染进程调用接口比对服务器最新资源版本和本地资源版本是否一致,若不一致则向主进程触发资源热更新函数。
  2. 在主进程模块下添加hotUpdate.js主要处理更新资源的下载和替换

    代码示例 仅供参考

  3. 解决 windows 安装在c 盘 没有权限操作文件  配置 electron-builder

    具体配置可查看nsis 文档 地址

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月11日
下一篇 2022年5月11日

相关推荐