摘要:作者鐘離,酷家樂客戶端負(fù)責(zé)人原文地址酷家樂客戶端下載地址文章背景在酷家樂客戶端在改版成功后,我們積累了許多的寶貴的經(jīng)驗和最佳實踐。用戶在電腦上安裝客戶端,實際上會將客戶端代碼文件持久儲存到本機。通常我們會在軟件啟動時檢查更新。
更新原理作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人
原文地址:https://webfe.kujiale.com/electron-autoupdate/
酷家樂客戶端:下載地址 https://www.kujiale.com/activity/136
文章背景:在酷家樂客戶端在V12改版成功后,我們積累了許多的寶貴的經(jīng)驗和最佳實踐。前端社區(qū)里關(guān)于Electron知識相對較少,因此希望將這些內(nèi)容以系列文章的形式分享出來。
系列文章:【Electron】酷家樂客戶端開發(fā)實踐分享 — 入坑篇
【Electron】酷家樂客戶端開發(fā)實踐分享 — 軟件自動更新
【Electron】酷家樂客戶端開發(fā)實踐分享 — 瀏覽器啟動客戶端
【Electron】酷家樂客戶端開發(fā)實踐分享 — 進程通信
【Electron】酷家樂客戶端開發(fā)實踐分享 — 下載管理器
不定期更新...
在講客戶端更新方案之前,我們先了解一下web和客戶端更新的原理
web應(yīng)用在web應(yīng)用的世界里,我們通常會更新web服務(wù)器上的前端代碼(模板、HTML,也可能是js、css),來發(fā)布新的功能。在此之后用戶再訪問我們的web服務(wù)器,拿到的已經(jīng)是更新過后的前端代碼了。
web應(yīng)用更新如此方便,得益于它中心化存儲的方式:
web應(yīng)用的前端代碼,一般集中儲存在服務(wù)器或云服務(wù)上
瀏覽器每次都會都會去服務(wù)器拉取最新的資源,用戶本機實際上沒有持久化儲存web應(yīng)用的代碼
瀏覽器緩存也算是在用戶本機存儲了前端代碼,但是在web應(yīng)用需要更新的時候,肯定是會禁用緩存的,否則這次發(fā)布對有緩存的用戶無效。客戶端
和web應(yīng)用的中心化儲存不同,客戶端的代碼實際上是一種分布式存儲,每個用戶電腦上都有一份完整的代碼文件,有點像git。
用戶在電腦上安裝客戶端,實際上會將客戶端代碼文件持久儲存到本機。例如在MacOS上,代碼文件存放在/Applications目錄下。
客戶端內(nèi)嵌web頁面的更新方式,和上面講到的web應(yīng)用更新是一樣的,不再贅述(參考移動APP內(nèi)嵌的H5頁面更新)結(jié)論
web應(yīng)用的更新,實際上是更新服務(wù)端代碼文件
客戶端的更新,實際上是更新用戶電腦上代碼文件
具體實現(xiàn)Electron官網(wǎng)有關(guān)于更新的教程 Updating Applications,但是都不能滿足業(yè)務(wù)需求:
update.electron.org,代碼必須托管在github上,pass
electron-builder,windows下只支持NSIS,而且需要搭建HTTP服務(wù)。更新程序UI和交互定制也不是很友好
Deploying an Update Server,這個方案需要部署一個update server,也比較麻煩
因此,我們使用的是自己實現(xiàn)的一套更新流程。
1、檢查更新檢查更新是整體流程的第一個步驟。如果有更新,后續(xù)的更新邏輯才會執(zhí)行。通常我們會在軟件啟動時檢查更新。
檢查更新的策略,實際上是將本地客戶端的版本與遠(yuǎn)程版本進行一次對比,然后根據(jù)版本對比的結(jié)果來給出不同的更新展示。
相比于自己搭建一個update server,維護一個遠(yuǎn)程的JSON數(shù)據(jù)成本是很低的。這個遠(yuǎn)程數(shù)據(jù)可以是一個后端接口或者cdn上的json文件,并且可以在需要更新的時候,及時更新遠(yuǎn)程數(shù)據(jù)的內(nèi)容
這個遠(yuǎn)程JSON數(shù)據(jù)里面一般會存放版本號、更新內(nèi)容介紹以及發(fā)布時間:
const updateData = axios.get("https://some-update.json"); console.log(updateData); /* { version: "1.0.0", changeLogs: ["來個開發(fā)祭天","新增了
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/104655.html
摘要:作者鐘離,酷家樂客戶端負(fù)責(zé)人原文地址酷家樂客戶端下載地址文章背景在酷家樂客戶端在改版成功后,我們積累了許多的寶貴的經(jīng)驗和最佳實踐。用戶在電腦上安裝客戶端,實際上會將客戶端代碼文件持久儲存到本機。通常我們會在軟件啟動時檢查更新。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/electron-autoupdate/酷家樂客戶端:下載地址...
摘要:系列文章酷家樂客戶端開發(fā)實踐分享入坑篇酷家樂客戶端開發(fā)實踐分享軟件自動更新酷家樂客戶端開發(fā)實踐分享瀏覽器啟動客戶端酷家樂客戶端開發(fā)實踐分享進程通信酷家樂客戶端開發(fā)實踐分享下載管理器不定期更新本文的初衷所使用的技術(shù)棧和前端工程師完美契合。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-d...
摘要:系列文章酷家樂客戶端開發(fā)實踐分享入坑篇酷家樂客戶端開發(fā)實踐分享軟件自動更新酷家樂客戶端開發(fā)實踐分享瀏覽器啟動客戶端酷家樂客戶端開發(fā)實踐分享進程通信酷家樂客戶端開發(fā)實踐分享下載管理器不定期更新本文的初衷所使用的技術(shù)棧和前端工程師完美契合。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-d...
摘要:作者鐘離,酷家樂客戶端負(fù)責(zé)人原文地址酷家樂客戶端下載地址文章背景在酷家樂客戶端在改版成功后,我們積累了許多的寶貴的經(jīng)驗和最佳實踐。鐘離可以注冊多個協(xié)議接收參數(shù)協(xié)議注冊完畢之后,我們已經(jīng)可以在瀏覽器中,通過訪問自定義協(xié)議來啟動客戶端了。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/browser-to-client/酷家樂客戶端:下載...
摘要:作者鐘離,酷家樂客戶端負(fù)責(zé)人原文地址酷家樂客戶端下載地址文章背景在酷家樂客戶端在改版成功后,我們積累了許多的寶貴的經(jīng)驗和最佳實踐。鐘離可以注冊多個協(xié)議接收參數(shù)協(xié)議注冊完畢之后,我們已經(jīng)可以在瀏覽器中,通過訪問自定義協(xié)議來啟動客戶端了。 作者:鐘離,酷家樂PC客戶端負(fù)責(zé)人原文地址:https://webfe.kujiale.com/browser-to-client/酷家樂客戶端:下載...
閱讀 1195·2021-11-16 11:45
閱讀 1071·2021-09-04 16:41
閱讀 3102·2019-08-29 16:40
閱讀 2896·2019-08-29 15:34
閱讀 2700·2019-08-29 13:11
閱讀 1765·2019-08-29 12:58
閱讀 1752·2019-08-28 18:00
閱讀 1804·2019-08-26 18:26