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