摘要:作者鐘離,酷家樂客戶端負責人原文地址酷家樂客戶端下載地址文章背景在酷家樂客戶端在改版成功后,我們積累了許多的寶貴的經驗和最佳實踐。用戶在電腦上安裝客戶端,實際上會將客戶端代碼文件持久儲存到本機。通常我們會在軟件啟動時檢查更新。
更新原理作者:鐘離,酷家樂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: ["來個開發祭天","新增了
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104655.html
摘要:作者鐘離,酷家樂客戶端負責人原文地址酷家樂客戶端下載地址文章背景在酷家樂客戶端在改版成功后,我們積累了許多的寶貴的經驗和最佳實踐。用戶在電腦上安裝客戶端,實際上會將客戶端代碼文件持久儲存到本機。通常我們會在軟件啟動時檢查更新。 作者:鐘離,酷家樂PC客戶端負責人原文地址:https://webfe.kujiale.com/electron-autoupdate/酷家樂客戶端:下載地址...
摘要:系列文章酷家樂客戶端開發實踐分享入坑篇酷家樂客戶端開發實踐分享軟件自動更新酷家樂客戶端開發實踐分享瀏覽器啟動客戶端酷家樂客戶端開發實踐分享進程通信酷家樂客戶端開發實踐分享下載管理器不定期更新本文的初衷所使用的技術棧和前端工程師完美契合。 作者:鐘離,酷家樂PC客戶端負責人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-d...
摘要:系列文章酷家樂客戶端開發實踐分享入坑篇酷家樂客戶端開發實踐分享軟件自動更新酷家樂客戶端開發實踐分享瀏覽器啟動客戶端酷家樂客戶端開發實踐分享進程通信酷家樂客戶端開發實踐分享下載管理器不定期更新本文的初衷所使用的技術棧和前端工程師完美契合。 作者:鐘離,酷家樂PC客戶端負責人原文地址:https://webfe.kujiale.com/electron-ku-jia-le-ke-hu-d...
摘要:作者鐘離,酷家樂客戶端負責人原文地址酷家樂客戶端下載地址文章背景在酷家樂客戶端在改版成功后,我們積累了許多的寶貴的經驗和最佳實踐。鐘離可以注冊多個協議接收參數協議注冊完畢之后,我們已經可以在瀏覽器中,通過訪問自定義協議來啟動客戶端了。 作者:鐘離,酷家樂PC客戶端負責人原文地址:https://webfe.kujiale.com/browser-to-client/酷家樂客戶端:下載...
摘要:作者鐘離,酷家樂客戶端負責人原文地址酷家樂客戶端下載地址文章背景在酷家樂客戶端在改版成功后,我們積累了許多的寶貴的經驗和最佳實踐。鐘離可以注冊多個協議接收參數協議注冊完畢之后,我們已經可以在瀏覽器中,通過訪問自定義協議來啟動客戶端了。 作者:鐘離,酷家樂PC客戶端負責人原文地址:https://webfe.kujiale.com/browser-to-client/酷家樂客戶端:下載...
閱讀 1161·2021-11-16 11:45
閱讀 1015·2021-09-04 16:41
閱讀 3077·2019-08-29 16:40
閱讀 2852·2019-08-29 15:34
閱讀 2673·2019-08-29 13:11
閱讀 1734·2019-08-29 12:58
閱讀 1726·2019-08-28 18:00
閱讀 1775·2019-08-26 18:26