electron自动更新应用(热更新)-实践流程

 浆糊之家   2022-09-05 18:49   0 views 热度值

用electron框架打包的软件,如何能让它实现自动更新软件版本能力呢?

1、electron-builder打包出来的文件会生成一个latest.yml文件,用来判断当前软件版本
2、electron-updater实现应用自动监听版本是否需要更新,需要依赖electron-builder打包出来的latest.yml文件

首先先看一下latest.yml文件内有什么内容

PS: 主要标记了版本号,文件下载地址等内容

下面我们开始实现一个自动更新软件的功能,本案例是通过部署一台服务器存放静态资源方式

第一步:配置打包参数

在package.json中添加一个build参数,里面配置如下:

PS:win包一定要配置安装模式,如果是免安装打开的不会生成latest.yml文件

第二步:构建打包

在第一步中已经配置了一个比较大的"version"版本号,执行一下构建electron命令,2、,查看是生会生成latest.yml文件

以下几个打包命令参考:

如果会生成latest.yml文件,接着就往下跟着步骤走

第三步:准备一个静态服务环境

这里以前端用node启一个静态服务目录的能力(自己搭建一个)!
这了为了方便我直接搭建好了一个node服务,只需要把文件抛到public目录即可!github仓库地址

执行npm run dev启动,访问地址127.0.0:6789/update 就能访问此目录内所有静态文件
PS:update目录是我自己创建的

第四步:实现软件更新逻辑代码

创建一个updateApp.ts文件,用来写更新应用的逻辑,代码内容如下

channleName内容如下

然后在main入口文件内添加如下内容

此时打开软件就能检测自动更新功能软件了,但是还不太友好,接下来我们和view视图层做一下交互通信

第五步:实现与view视图层交互,通知更新

下面实现软件更新,进行在view页面视图层进行简单的交互,可以基于以下实现扩展更新体验交互逻辑,6、首先我们要给view视图层暴露electron API参数(直接调用是会报错的),需要利用中间层去做这件事件,创建一个preload.js文件

然后到main入口文件内,添加刚刚的preload.js文件,利用预加载文件能力去读取preload文件,把参数暴露给view视图层

在视图层react页面中,创建一个组件Update,并且在页面中引用此组件
Update组件代码如下:

此时就可以进行测试更新,会与当前页面进行交互展示了

PREVIOUS:已经是最后一篇了
NEXT:已经是最新一篇了
 相关文章  关键词:

 发表评论


表情