最近做移動商城開發,需要一個自動升級APP的功能,在網上搜羅很多,發現有的是下載APK,有的在我這服務無法實現,由於時間原因,都被PASS了,最后找到了一個熱更新插件,經過半天的調試,可以使用,很欣喜,記錄下來,一起學習。
此插件名稱是cordova-hot-code-push 可以在github 下載到源碼,附地址:https://github.com/nordnet/cordova-hot-code-push
1.首先打開cli,執行命令 npm install -g cordova-hot-code-push-cli
此功能主要是為了生成兩個配置文件chcp.json和chcp.manifest,用於檢測更新
2.安裝更新插件
打開項目路徑,打開cli
ionic plugin add cordova-hot-code-push-plugin
ionic plugin add cordova-hot-code-push-local-dev-addon
3.運行 cordova-hcp build 或 cordova build
此時www文件夾中會出現兩個文件,也就是上文說的chcp.json和chcp.manifest
chcp.json格式
{ "autogenerated": true, "content_url": "http://xxxxx.com", //更新遠程庫路徑 "update": "start", //更新模式 start:啟動更新 resume:后台切換回來更新 now:web內容下載完畢即安裝更新 "release": "2016.12.16-11.29.38" }
該文件在每次執行cordova-hcp build 都會更新,為了不用每次更改chcp.json的內容,可以在項目根目錄下創建一個cordova-hcp.json文件,如下
{ "autogenerated": true, "content_url": "http://xxxxx.com", //更新遠程庫路徑
"update": "start"
}
以后每次執行cordova-hcp build時,會將cordova-hcp.json的內容更新到chcp.json中,省去每次都要修改的麻煩。
chcp.manifest 為文件的名稱與hash值的集合,用於檢測哪些文件需要更新
4.此時在項目根目錄下會生成一個.chcpenv的文件,此文件用戶配置遠程服務器,內容如下:
{ "content_url": "http://xxxxx.com", //用於獲取文件 "config_url": "http://xxxxx.com/chcp.json" //用於訪問遠程服務器配置文件 }
5.現在就可以打包APP測試,修改www目錄下的任何一個文件,然后cli執行cordova-hcp build,上面的兩個配置文件會同時更新,
然后將www下所有的文件一起拷貝到遠程服務器目錄,我放在了IIS 下的一個AppUpdate下
6.現在就可以打開程序查看更新效果,可能會打開兩次才能看到效果,可以看一下剛才更新的內容。
上述都是基於android的,ios 現在暫時還沒有做。
到此程序更新就完成了。