npm install –g cordovahtml
npm install -g cordova-hot-code-push-cliandroid
Cordova create cordova-hot-pushios
cordova plugin add cordova-hot-code-push-plugin
cordova-hcp init 生成配置文件npm
最後生成的文件json
解釋一下里面的配置服務器
Name :項目名字網絡
Update:什麼時候觸發熱更新,有幾個選項(start(應用啓動),resume(應用從後臺恢復),now(下載更新後自動執行))app
Content_url:此項配置很是重要。這是www目錄存放的網絡位置,當有更新的時候,應用會去這個目錄下載對應文件。個人作法是在iis上新建一個hot虛擬目錄,把www的內容複製進去。測試
cordova-hcp buildui
文件映射配置文件生成後,會在www目錄下生成兩個文件
第一個chcp.json文件
咱們能夠看到,和熱更新配置文件幾乎同樣,只是多了一個release。版本號。這個版本號通常以時間爲單位。
第二個chcp.manifest文件
能夠看到,裏面是每一個文件的hash映射。
添加配置
<chcp>
<config-file url="http://172.26.40.153/hot/chcp.json" />
<auto-download enabled="true" />
<auto-install enabled="true" />
<native-interface version="1" />
</chcp>
Cordova platform add android
Cordova build android
假設咱們如今要更新一個代碼。把index.html裏面隨便加個內容
添加完成以後。保存代碼。
這裏解釋一下更新的原理
當app啓動的時候,會去檢查本地的版本(release)和服務器上的release(chcp.json)是否同樣。不同的話就去對比文件hash,進行相應的文件更新。
因此咱們要作的是,先把更新後的代碼從新生成文件映射配置文件
能夠看到咱們的版本號變了。
接下來把www下面的文件拷貝到以前配置的熱更新代碼存放點(http://172.26.40.153/hot)的對應目錄。(第一次拷貝全部文件,之後只須要拷貝修改過的文件到對應目錄替換以及兩個chcp相關的文件便可)
接下來去啓動app試試看
成功!
生成熱更新配置文件的時候,update選項設置爲start,必定要啓動兩次app才生效。根據個人推測,第一次是下載文件,第二次才生效。把Update配置項改爲now不知道會不會立馬生效,可是若是須要更新的文件較多,不知道會不會影響用戶的使用,待測試。
通過測試,安卓好像只支持http協議,不支持https協議的熱更新
Ios的熱更新和安卓基本同樣。不同的地方只是Ios只能使用https協議進行熱更新。所以咱們以前得配置都須要配置成https協議。如https://172.26.40.153/hot 另外,咱們要提早作的事情是在咱們的服務器上頒發https證書並綁定,同時在ios設備上安裝該證書,信任,才能夠進行熱更新。