ionic2/3熱更新(cordova-hot-code-push)

描述

  • 此文摘抄自小軍,此次記錄主要是為了自己更深刻的理解和記憶。

準(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
圖片.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
圖片.png
圖片.png
  • 把整個(gè)www目錄拷貝tomcat服務(wù)器上

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

圖片.png
  • 此時(shí)訪問(wèn)http://服務(wù)器IP:端口/www/會(huì)看到我們的app界面


    圖片.png
  • 給項(xiàng)目安裝熱更新插件

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

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

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

發(fā)布熱更新

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

圖片.png
  • 使用cordova-hcp build重新生成文件的hash.這一步很容易被忽略
圖片.png
  • 拷貝www目錄到tomcat服務(wù)器上


    圖片.png
  • 重啟app.稍等幾秒,頁(yè)面會(huì)立即刷新(因?yàn)槲覀兊母骂?lèi)型是now)

4108891-1601e167e792a8ff.gif
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容