资讯专栏INFORMATION COLUMN

【Electron】酷家乐客户端开发实践分享 — 软件自动更新

leiyi / 880人阅读

摘要:作者钟离,酷家乐客户端负责人原文地址酷家乐客户端下载地址文章背景在酷家乐客户端在改版成功后,我们积累了许多的宝贵的经验和最佳实践。用户在电脑上安装客户端,实际上会将客户端代码文件持久储存到本机。通常我们会在软件启动时检查更新。

作者:钟离,酷家乐PC客户端负责人
原文地址:https://webfe.kujiale.com/electron-autoupdate/
酷家乐客户端:下载地址 https://www.kujiale.com/activity/136
文章背景:在酷家乐客户端在V12改版成功后,我们积累了许多的宝贵的经验和最佳实践。前端社区里关于Electron知识相对较少,因此希望将这些内容以系列文章的形式分享出来。
系列文章:

【Electron】酷家乐客户端开发实践分享 — 入坑篇

【Electron】酷家乐客户端开发实践分享 — 软件自动更新

【Electron】酷家乐客户端开发实践分享 — 浏览器启动客户端

【Electron】酷家乐客户端开发实践分享 — 进程通信

【Electron】酷家乐客户端开发实践分享 — 下载管理器

不定期更新...

更新原理

在讲客户端更新方案之前,我们先了解一下web和客户端更新的原理

web应用

在web应用的世界里,我们通常会更新web服务器上的前端代码(模板、HTML,也可能是js、css),来发布新的功能。在此之后用户再访问我们的web服务器,拿到的已经是更新过后的前端代码了。

web应用更新如此方便,得益于它中心化存储的方式:

web应用的前端代码,一般集中储存在服务器或云服务上

浏览器每次都会都会去服务器拉取最新的资源,用户本机实际上没有持久化储存web应用的代码

浏览器缓存也算是在用户本机存储了前端代码,但是在web应用需要更新的时候,肯定是会禁用缓存的,否则这次发布对有缓存的用户无效。
客户端

和web应用的中心化储存不同,客户端的代码实际上是一种分布式存储,每个用户电脑上都有一份完整的代码文件,有点像git

用户在电脑上安装客户端,实际上会将客户端代码文件持久储存到本机。例如在MacOS上,代码文件存放在/Applications目录下。

客户端内嵌web页面的更新方式,和上面讲到的web应用更新是一样的,不再赘述(参考移动APP内嵌的H5页面更新)
结论

web应用的更新,实际上是更新服务端代码文件

客户端的更新,实际上是更新用户电脑上代码文件

具体实现

Electron官网有关于更新的教程 Updating Applications,但是都不能满足业务需求:

update.electron.org,代码必须托管在github上,pass

electron-builder,windows下只支持NSIS,而且需要搭建HTTP服务。更新程序UI和交互定制也不是很友好

Deploying an Update Server,这个方案需要部署一个update server,也比较麻烦

因此,我们使用的是自己实现的一套更新流程。

1、检查更新

检查更新是整体流程的第一个步骤。如果有更新,后续的更新逻辑才会执行。通常我们会在软件启动时检查更新。

检查更新的策略,实际上是将本地客户端的版本与远程版本进行一次对比,然后根据版本对比的结果来给出不同的更新展示。

远程版本

相比于自己搭建一个update server,维护一个远程的JSON数据成本是很低的。这个远程数据可以是一个后端接口或者cdn上的json文件,并且可以在需要更新的时候,及时更新远程数据的内容

这个远程JSON数据里面一般会存放版本号、更新内容介绍以及发布时间:

const updateData = axios.get("https://some-update.json");
console.log(updateData);
/*
{
    version: "1.0.0",
    changeLogs: ["来个开发祭天","新增了           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104655.html

相关文章

  • Electron家乐户端开发实践分享软件自动更新

    摘要:作者钟离,酷家乐客户端负责人原文地址酷家乐客户端下载地址文章背景在酷家乐客户端在改版成功后,我们积累了许多的宝贵的经验和最佳实践。用户在电脑上安装客户端,实际上会将客户端代码文件持久储存到本机。通常我们会在软件启动时检查更新。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-autoupdate/酷家乐客户端:下载地址...

    phpmatt 评论0 收藏0
  • Electron家乐户端开发实践分享 — 入坑篇

    摘要:系列文章酷家乐客户端开发实践分享入坑篇酷家乐客户端开发实践分享软件自动更新酷家乐客户端开发实践分享浏览器启动客户端酷家乐客户端开发实践分享进程通信酷家乐客户端开发实践分享下载管理器不定期更新本文的初衷所使用的技术栈和前端工程师完美契合。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-d...

    jay_tian 评论0 收藏0
  • Electron家乐户端开发实践分享 — 入坑篇

    摘要:系列文章酷家乐客户端开发实践分享入坑篇酷家乐客户端开发实践分享软件自动更新酷家乐客户端开发实践分享浏览器启动客户端酷家乐客户端开发实践分享进程通信酷家乐客户端开发实践分享下载管理器不定期更新本文的初衷所使用的技术栈和前端工程师完美契合。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-d...

    TwIStOy 评论0 收藏0
  • Electron家乐户端开发实践分享 — 浏览器启动户端

    摘要:作者钟离,酷家乐客户端负责人原文地址酷家乐客户端下载地址文章背景在酷家乐客户端在改版成功后,我们积累了许多的宝贵的经验和最佳实践。钟离可以注册多个协议接收参数协议注册完毕之后,我们已经可以在浏览器中,通过访问自定义协议来启动客户端了。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/browser-to-client/酷家乐客户端:下载...

    Cciradih 评论0 收藏0
  • Electron家乐户端开发实践分享 — 浏览器启动户端

    摘要:作者钟离,酷家乐客户端负责人原文地址酷家乐客户端下载地址文章背景在酷家乐客户端在改版成功后,我们积累了许多的宝贵的经验和最佳实践。钟离可以注册多个协议接收参数协议注册完毕之后,我们已经可以在浏览器中,通过访问自定义协议来启动客户端了。 作者:钟离,酷家乐PC客户端负责人原文地址:https://webfe.kujiale.com/browser-to-client/酷家乐客户端:下载...

    刘德刚 评论0 收藏0

发表评论

0条评论

leiyi

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<