亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于electron技術(shù)的客戶端升級(jí)方法與流程

文檔序號(hào):11514737閱讀:2310來(lái)源:國(guó)知局
基于electron技術(shù)的客戶端升級(jí)方法與流程

本發(fā)明涉及數(shù)據(jù)交換,涉及傳輸控制規(guī)程,尤指一種基于electron技術(shù)的客戶端升級(jí)方法。



背景技術(shù):

electron是一種打包了瀏覽器內(nèi)核webkit和nodejs的運(yùn)行環(huán)境。使用electron,javascript,html,css這些web開(kāi)發(fā)技術(shù)可以用來(lái)開(kāi)發(fā)客戶端。electron程序開(kāi)發(fā)完成后,使用javascript,html,css開(kāi)發(fā)的h5程序和electron提供的運(yùn)行環(huán)境一起被打包成安裝包,供用戶下載安裝。最終安裝到用戶電腦上運(yùn)行。electron技術(shù)的出現(xiàn)是革命性的。它帶來(lái)兩個(gè)好處1.h5技術(shù)也可以用來(lái)開(kāi)發(fā)客戶端程序,不需要c++知識(shí)。這樣大大降低了開(kāi)發(fā)成本。2.electron開(kāi)發(fā)的h5程序是跨平臺(tái)的。

electron應(yīng)用程序一旦被用戶下載安裝就需要后續(xù)的軟件升級(jí),確保用戶能用上最新的功能?,F(xiàn)有的升級(jí)流程一般是這樣的。當(dāng)用戶啟動(dòng)軟件的時(shí)候,軟件發(fā)送當(dāng)前的版本信息到一個(gè)后臺(tái)版本升級(jí)服務(wù),版本升級(jí)服務(wù)根據(jù)配置檢測(cè)是否需要引導(dǎo)用戶升級(jí),并下發(fā)升級(jí)包的地址。這個(gè)升級(jí)包是一個(gè)全新的安裝包,包含electron運(yùn)行環(huán)境和h5程序。windows上安裝包是一個(gè)setup安裝文件,mac上則是一個(gè)app包或是一個(gè)dmg鏡像。當(dāng)新的安裝文件下載后,啟動(dòng)新版本安裝。

現(xiàn)有的升級(jí)方法存在這樣一個(gè)缺點(diǎn):打包了electron運(yùn)行環(huán)境和h5程序的安裝包比較大,造成下載升級(jí)不方便。安裝包較大的主要原因還是因?yàn)閑lectron運(yùn)行環(huán)境比較大,大概40-50m大小,包含瀏覽器webkit內(nèi)核和nodejs組件。而h5程序占比則小的多。每次程序發(fā)布新版本,用戶都需要下載較大的安裝包。安裝包越大,用戶越難有耐心下載完。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種基于electron技術(shù)的客戶端升級(jí)方法。旨在解決electron程序升級(jí)過(guò)程中,由于安裝包太大,而不方便升級(jí)的問(wèn)題。

本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:提供一種基于electron技術(shù)的客戶端升級(jí)方法,其特征在于包括如下步驟:

一.打包內(nèi)容升級(jí)包:

首先制作內(nèi)容升級(jí)包,把一個(gè)文件夾的所有升級(jí)內(nèi)容打包為一個(gè)文件;使用asar文件作為內(nèi)容包的格式;打包asar內(nèi)容包后,一并打包版本描述json文件為zip包,作為內(nèi)容升級(jí)包;

二.檢測(cè)升級(jí)并下載內(nèi)容升級(jí)包:

在內(nèi)容升級(jí)包中增加內(nèi)容版本號(hào)標(biāo)識(shí);使一個(gè)軟件有兩個(gè)版本號(hào),一個(gè)是原來(lái)的軟件的容器版本號(hào),一個(gè)是內(nèi)容升級(jí)包的版本號(hào);把容器版本號(hào)和內(nèi)容版本號(hào)一起發(fā)給版本檢測(cè)服務(wù);版本檢測(cè)服務(wù)根據(jù)配置信息判斷:

a.當(dāng)前版本均為最新版本,不用升級(jí),執(zhí)行原客戶端軟件;

b.容器版本需要升級(jí);執(zhí)行全量安裝包升級(jí),然后返回第一步;

c.內(nèi)容版本需要升級(jí);由版本檢測(cè)服務(wù)告訴前端內(nèi)容升級(jí)包的地址和內(nèi)容升級(jí)包的md5哈希值;前端下載內(nèi)容升級(jí)包到一個(gè)臨時(shí)目錄后校驗(yàn)md5哈希值;md5不正確,則刪除安裝包,并詢問(wèn)用戶,下載出錯(cuò)是否重試,是則返回第一步,否則退出;md5正確則執(zhí)行如下第三步;

三.安裝內(nèi)容升級(jí)包:

把內(nèi)容升級(jí)包移動(dòng)到有寫入權(quán)限的目錄,解壓縮出asar文件和元數(shù)據(jù)文件;在元數(shù)據(jù)文件中增加當(dāng)前運(yùn)行程序的容器版本和內(nèi)容版本;作廢已安裝的內(nèi)容升級(jí)包作廢已安裝的內(nèi)容升級(jí)包;

四.加載內(nèi)容升級(jí)包:

重新啟動(dòng)程序,首先檢查數(shù)據(jù)目錄中是否有內(nèi)容升級(jí)包;如果內(nèi)容升級(jí)包的元數(shù)據(jù)文件中的容器版本匹配當(dāng)前容器的版本,則內(nèi)容升級(jí)包有效,可以從內(nèi)容包中加載h5入口頁(yè)面index.html;如果版本不匹配,說(shuō)明升級(jí)包無(wú)效,則刪除內(nèi)容包,并加載安裝目錄下的內(nèi)容包中的index.html;加載后返回第二步。

本發(fā)明的有益效果是:

a.使用內(nèi)容升級(jí)后,直接把50兆的升級(jí)包變成3兆的內(nèi)容升級(jí)包。升級(jí)時(shí)間大大縮短。

b.只升級(jí)內(nèi)容,不升級(jí)瀏覽器內(nèi)核,使瀏覽器內(nèi)核相對(duì)穩(wěn)定。減少反復(fù)升級(jí)瀏覽器內(nèi)核帶來(lái)的風(fēng)險(xiǎn)。

c.另外,內(nèi)容升級(jí)和容器升級(jí)是兩套平行的升級(jí)機(jī)制。當(dāng)需要更新瀏覽器內(nèi)核的時(shí)候,仍然可以整體升級(jí)軟件。

附圖說(shuō)明

下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的描述。

圖1是本發(fā)明的流程方框圖。

圖2是本發(fā)明的內(nèi)容升級(jí)包結(jié)構(gòu)示意圖。

圖3是本發(fā)明的內(nèi)容升級(jí)包安裝后的結(jié)構(gòu)示意圖。

具體實(shí)施方式

參見(jiàn)附圖,本發(fā)明一種基于electron技術(shù)的客戶端升級(jí)方法,其特征在于包括如下步驟:

一.打包內(nèi)容升級(jí)包:

內(nèi)容升級(jí)首先需要制作內(nèi)容升級(jí)包;asar是一種類似于tar的文件格式,相當(dāng)于把一個(gè)文件夾的所有內(nèi)容打包為一個(gè)文件;electron支持直接運(yùn)行打包了所有h5資源的asar文件;因此可以使用asar文件作為內(nèi)容包的格式;但是,由于asar文件由于沒(méi)有元數(shù)據(jù),不方便直接查看asar內(nèi)容包的版本號(hào),且無(wú)壓縮,不方便網(wǎng)絡(luò)傳輸;我們打包asar內(nèi)容包后,一并打包版本描述json文件為zip包,作為內(nèi)容升級(jí)包;內(nèi)容包升級(jí)的時(shí)候解壓縮zip包;程序啟動(dòng)時(shí)加載asar文件中的h5入口頁(yè)面index.html;

二.檢測(cè)升級(jí)并下載內(nèi)容升級(jí)包:

為了實(shí)現(xiàn)內(nèi)容升級(jí)的檢測(cè),內(nèi)容包中必須增加內(nèi)容版本號(hào)標(biāo)識(shí);這樣一個(gè)軟件就有了兩個(gè)版本號(hào),一個(gè)是原來(lái)的軟件的版本號(hào),即容器版本號(hào),一個(gè)是內(nèi)容包的版本號(hào);軟件啟動(dòng)檢測(cè)版本的時(shí)候,把容器版本號(hào)和內(nèi)容版本號(hào)一起發(fā)給版本檢測(cè)服務(wù)(圖1c);版本檢測(cè)服務(wù)根據(jù)配置信息返回給軟件三種情況:1.不用升級(jí);2.需要容器升級(jí);3.需要內(nèi)容升級(jí);第一種情況,表明當(dāng)前軟件為最新版本,可以正常啟動(dòng);第二種情況就是原來(lái)的全量安裝包升級(jí)機(jī)制,仍保留,作為內(nèi)容升級(jí)的補(bǔ)充;第三種情況,是本文所述內(nèi)容升級(jí);版本檢測(cè)服務(wù)需要告訴前端內(nèi)容升級(jí)包的地址,內(nèi)容升級(jí)包的md5哈希值;md5哈希值用于校驗(yàn)下載的升級(jí)包真實(shí)性;接著,前端下載內(nèi)容升級(jí)包到一個(gè)臨時(shí)目錄后(圖1d),校驗(yàn)md5哈希值;md5不正確,則刪除安裝包,并詢問(wèn)用戶,下載出錯(cuò)是否重試;md5正確則說(shuō)明內(nèi)容升級(jí)包可用,可以安裝內(nèi)容升級(jí)包;

三.安裝內(nèi)容升級(jí)包:

由于程序是沒(méi)有權(quán)限修改軟件的安裝目錄下的文件的,即windows下面非管理員賬戶啟動(dòng)的軟件無(wú)權(quán)限修改programfiles目錄下的自身的安裝文件,而mac下的程序可以修改app包內(nèi)容,但會(huì)破壞數(shù)字簽名證書,造成程序不可用;這樣內(nèi)容升級(jí)包直接替換安裝目錄下的內(nèi)容包是不可行的;本方案把內(nèi)容升級(jí)包移動(dòng)到有寫入權(quán)限的目錄,比如程序的數(shù)據(jù)目錄,windows下為appdata\roaming\yourapp,mac為~/library/applicationsupport/yourapp;移動(dòng)上一步下載的內(nèi)容升級(jí)包至此,并解壓縮出asar文件和元數(shù)據(jù)文件(圖1e);同時(shí),在元數(shù)據(jù)文件中增加當(dāng)前運(yùn)行程序的容器版本和內(nèi)容版本;這個(gè)版本號(hào)需要在程序加載內(nèi)容包的時(shí)候檢查;這個(gè)措施確保當(dāng)程序容器升級(jí)的時(shí)候,作廢已安裝的內(nèi)容升級(jí)包;

四.加載內(nèi)容升級(jí)包:

有了上一步的內(nèi)容升級(jí)包后,程序在重新啟動(dòng)的時(shí)候首先檢查數(shù)據(jù)目錄中是否有內(nèi)容升級(jí)包;如果內(nèi)容升級(jí)包的元數(shù)據(jù)文件中的容器版本匹配當(dāng)前容器的版本,則內(nèi)容升級(jí)包有效,可以從內(nèi)容包中加載h5入口頁(yè)面index.html;如果版本不匹配,說(shuō)明升級(jí)包無(wú)效,則刪除內(nèi)容包,并加載安裝目錄下的內(nèi)容包中的index.html(圖1b);加載后進(jìn)行步驟二所述的版本升級(jí)檢測(cè)。

在本發(fā)明的實(shí)施例中:

使用兩個(gè)版本號(hào)分別標(biāo)示容器和內(nèi)容的版本號(hào)。啟動(dòng)的時(shí)候,首先把容器版本號(hào)和內(nèi)容版本號(hào)通過(guò)http請(qǐng)求發(fā)給后臺(tái)版本檢測(cè)服務(wù)https://update.gf.com.cn/update/containerapp/checkversion。內(nèi)容升級(jí)的時(shí)候,后臺(tái)版本檢測(cè)服務(wù)返回內(nèi)容升級(jí)包的大小,md5和地址給前端。前端下載地址中的升級(jí)包到臨時(shí)目錄,并校驗(yàn)大小,md5。如果大小,md5正確,升級(jí)包被移動(dòng)到程序的數(shù)據(jù)目錄下,進(jìn)行安裝。否則,則提示下載出錯(cuò)。(數(shù)據(jù)目錄是一個(gè)有寫入權(quán)限的目錄,windows下為~\appdata\roaming\gf-trader,mac為~/library/applicationsupport/gf-trader)。

下載的內(nèi)容升級(jí)包是一個(gè)zip文件,包含一個(gè)asar文件,一個(gè)元數(shù)據(jù)json文件。asar文件是打包的h5資源(類似于tar文件,electron運(yùn)行時(shí)支持直接加載asar文件中的html頁(yè)面包括js,html,css,圖片等文件),元數(shù)據(jù)文件則描述這個(gè)升級(jí)包的版本號(hào)信息。安裝過(guò)程首先解壓內(nèi)容升級(jí)zip包。然后,在元數(shù)據(jù)json文件中追加寫入當(dāng)前被升級(jí)的軟件的內(nèi)容包版本號(hào)和容器版本號(hào),最后重啟軟件。

重新啟動(dòng)后,至易版在加載過(guò)程中,首先檢查程序的數(shù)據(jù)目錄中是否有升級(jí)包。不存在內(nèi)容升級(jí)包,則從軟件內(nèi)置的內(nèi)容包加載入口html文件。存在內(nèi)容升級(jí)包,則讀取元數(shù)據(jù)json文件,并判斷升級(jí)包的版本號(hào)和容器版本號(hào)是否和當(dāng)前啟動(dòng)的軟件的容器版本號(hào)、內(nèi)容版本號(hào)匹配。如果容器版本號(hào)不匹配,說(shuō)明內(nèi)容升級(jí)包已經(jīng)不適用于當(dāng)前安裝的軟件版本,則刪除失效的內(nèi)容升級(jí)包,并從軟件中內(nèi)置的內(nèi)容包加載。如果匹配,則加載內(nèi)容升級(jí)包asar文件中h5入口頁(yè)面。內(nèi)容升級(jí)完成。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1