描述
- 此文摘抄自小軍,此次記錄主要是為了自己更深刻的理解和記憶。
準(zhǔn)備
啟動(dòng)服務(wù)器tomcat,服務(wù)器tomcat的訪問(wèn)地址http://服務(wù)器ip:端口/
全局安裝cli
cnpm i -g cordova-hot-code-push-cli
圖片.png
-
啟動(dòng)ionic項(xiàng)目ionic serve,主要是把src下的代碼生成最新的www代碼,也可以使用ionic build
圖片.png -
使用命令cordova-hcp init生成熱更新配置,最終會(huì)在項(xiàng)目根目錄下生成一個(gè)cordova-hcp.json文件
圖片.png

{
"name": "ionic2test",
"ios_identifier": "com.kit.ionic2test",
"android_identifier": "com.kit.ionic2test",
"update": "now",
"content_url": "http://88.128.18.144:8080/www/"
}
其中content_url為更新內(nèi)容的服務(wù)器地址;update是更新類(lèi)型,分別分為now,start,resume
app每次啟動(dòng)去服務(wù)器判斷有無(wú)更新,有更新則下載更新內(nèi)容
now:下載完,立即刷新頁(yè)面應(yīng)用更新.(方便測(cè)試)
start:下載完,app下次啟動(dòng)的時(shí)候才應(yīng)用更新的內(nèi)容
resume:下載完,當(dāng)app從后臺(tái)切換到前臺(tái)時(shí)應(yīng)用更新(按手機(jī)home鍵進(jìn)入后臺(tái))
-
使用命令cordova-hcp build,會(huì)在www目錄下生成兩個(gè)文件,
chcp.manifest和chcp.json其中chcp.manifest描述了www目錄中每個(gè)文件的hash值,熱更新就是通過(guò)對(duì)比文件的hash值是否相等,來(lái)確定是否更新該文件
圖片.png


- 把整個(gè)www目錄拷貝tomcat服務(wù)器上
你當(dāng)然也可以修改www目錄名.修改后對(duì)應(yīng)的訪問(wèn)url做相應(yīng)修改.我這里不修改只是為了方便,建議你先不要修改,等你集成成功后在修改.

-
此時(shí)訪問(wèn)http://服務(wù)器IP:端口/www/會(huì)看到我們的app界面
圖片.png 給項(xiàng)目安裝熱更新插件
ionic cordova plugin add cordova-hot-code-push-plugin

- 在項(xiàng)目根目錄下的config.xml文件配置config-file url
<chcp>
<config-file url="http://88.128.18.144:8080/www/chcp.json" />
</chcp>


- 打包app,把a(bǔ)pp安裝在真機(jī)上
cordova platform rm android
cordova platform add android
cordova run android

發(fā)布熱更新
- 修改頁(yè)面代碼
注意:我這里修改的是src下的html,需要使用ionic serve或ionic build使代碼編譯到www目錄下.
你的生產(chǎn)環(huán)境可能是壓縮的,需要ionic build --prod


- 使用cordova-hcp build重新生成文件的hash.這一步很容易被忽略

-
拷貝www目錄到tomcat服務(wù)器上
圖片.png 重啟app.稍等幾秒,頁(yè)面會(huì)立即刷新(因?yàn)槲覀兊母骂?lèi)型是now)






