Cordova - 實現熱更新 !

Cordova版本:8.0.0android

更新APP平臺:Androidios

操做系統:Windowsgit

Cordova的熱更新,做用是把www內的變更部分更新到APP中,實現主程序不動,完成更新!!這個熱更新功能,對於IOS APP更有意義,由於,能夠避免繁瑣的蘋果審覈!!這個熱更新幾乎是全部Cordova開發都須要的功能!!!github

Cordova熱更新插件:https://github.com/nordnet/cordova-hot-code-pushnpm

Cordova熱更新工具:https://github.com/nordnet/cordova-hot-code-push-clijson

熱更新,如何實現的?Cordova的熱更新插件,靠什麼去找到須要更新的程序呢?咱們先無論這些問題了,先把上面插件和工具安裝上再說!服務器

一,安裝Cordova熱更新插件和熱更新工具ide

1,安裝Cordova熱更新插件工具

cordova plugin add cordova-hot-code-push-plugin

測試

cordova plugin add https://github.com/nordnet/cordova-hot-code-push.git

2,安裝Cordova熱更新工具,打開DOS窗口,輸入下面命令後回車

npm install -g cordova-hot-code-push-cli

假設,上面熱更新插件和熱更新工具都安裝完畢了,那麼回頭看上面我提到的問題,應該搞清楚這些,那麼就更容易理解和使用Cordova熱更新插件了!

二,瞭解熱更新重要文件和配置。

1,config.xml ,這個文件是Cordova工程配置文件,在Cordova工程的根目錄。這裏面須要加入一個很重要的配置項:

    <chcp>
        <config-file url="http://192.168.2.3/chcp.json" />
    </chcp>

這個url,是Cordova熱更新配置文件,JSON格式的,存放於須要熱更新的程序根目錄中,並且必須可以被Cordova以Http方式訪問到,不然沒法更新!!!下面是個人配置信息截圖:

 2,cordova-hcp.json,這是Cordova熱更新工具自動生成的文件,用於熱更新工具編譯。存放位置,Cordova工程根目錄。下面是個人這個文件的配置項目:

{
  "name": "CordovaHotUpdate",
  "ios_identifier": "",
  "android_identifier": "io.cordova.hellocordova",
  "update": "start",
  "content_url": "http://192.168.2.3"
}

兩個參數很重要,影響到是否能夠更新和如何更新?

content_url:這是Cordova熱更新程序存放目錄,對應Cordova工程的www目錄,之後程序變化以後,使用Cordova熱更新工具編譯以後,直接把www目錄中全部文件覆蓋這個目錄中的全部文件就能夠了。

update:這是熱更新的方式,經過它決定以什麼樣的方式更新Cordova程序。

3,chcp.json,這是極其重要的一個文件,是否可以熱更新,它起到相當重要的做用!這個文件存放目錄,熱更新程序的根目錄。Cordova熱更新插件進行熱更新,必須首先訪問這個文件,經過它來獲取熱更新程序存放目錄,以及熱更新方式!它的配置和上面的「cordova-hcp.json」基本同樣。這個文件是Cordova熱更新工具自動生成的文件。

4,chcp.manifest,這是極其重要的一個文件,是否可以熱更新,它起到相當重要的做用!它裏面記錄了程序的變更。這個文件是Cordova熱更新工具自動生成的文件。

三,實現熱更新。前提是已經安裝完了Cordova熱更新插件和幫助工具。

注意:全部命令均是在Cordova工程目錄下操做的,在DOS窗口執行命令以前,必須首先進入Cordova工程根目錄

1,生成熱更新相關配置文件。在DOS窗口,先進入Cordova工程根目錄,隨後在DOS窗口中輸入下面命令:

cordova-hcp init

這個時候,窗口中會出現多個問題,等待你輸入,最重要的是上面我提到的兩個update和content_url,把上面問題都回答完畢後,回車就會生成了cordova-hcp.json,存放在Cordova根目錄下!content_url,是很是重要的配置項,這是Cordova更新程序的在服務器上的存放目錄,必須保證這個目錄可以以http方式被訪問,並且必定保證裏面的chcp.json也可以以http方式訪問(IIS應該設置一下才能訪問擴展名爲json的文件)。

2,用熱更新幫助工具編譯當前程序。在DOS窗口中輸入下面命令。

cordova-hcp build

執行這個命令後,會很快編譯完畢,若是程序不大的話,隨後你會在www目錄中發現兩個文件:chcp.json和chcp.manifest,這兩個文件,是這個熱更新幫助工具自動生成的,不要手動去修改,不然若是修改錯誤了,熱更新也應該不能完成了!

3,編譯Cordova的APP。在DOS窗口輸入對應APP編譯命令,我是用Android作的APP,並且用真機鏈接測試,因此輸入下面命令,直接把編譯好的APP安裝到了個人真機上。

cordova run android--device

4,修改Cordova的程序,隨後再次用Cordova幫助工具編譯。編譯命令在上面:2

5,編譯完畢後,把全部www目錄,覆蓋測試服務器中對應的文件。

6,從新啓動APP。若是一切正常,那麼你應該能夠看到熱更新完成了,此次修改的文件已經在你APP中顯示出來了!這裏也取決於你的update參數如何配置,具體配置說明,請參考官方文檔說明。

可能引發困惑問題:

1,熱更新服務器須要安裝什麼軟件嗎?什麼軟件都不須要安裝,只須要你能保證存放熱更新程序的目錄以http方式正常訪問,並且json格式的文件,也必須一樣以Http方式訪問到。

2,我只安裝熱更新插件,是否能夠實現熱更新?應該能夠,可是比較麻煩,那些配置文件手動處理不太方便,並且還有一個標明文件變更的文件,那個處理應該很費解,最好仍是使用Cordova幫助工具。

3,Cordova熱更新幫助工具,有一個"server"命令,我是否須要?確實,這個工具提供了一個這樣的命令,命令以下:

cordova-hcp server

這個命令,是幫助你在本地實現一個http服務器,測試Cordova熱更新,也能夠在開發時候使用這樣方式來更新程序,真正在互聯網上服務器實現熱更新時候,不須要這個命令。

最後截圖,是個人Android APP實現熱更新以後的圖片:

 

參考:

https://github.com/nordnet/cordova-hot-code-push

https://github.com/nordnet/cordova-hot-code-push-cli

相關文章
相關標籤/搜索