前言
使用ionic+angularjs做混合應用開發也有一段時間了,在這個過程上最痛苦的事情莫過於更新,每次都需要焦急的等上幾天時間。偉大的喬幫主強大的控制慾在他離世多年後的今天依然影響着我。熱更是用於解決小版本更新,也就是說並不是所有的更新cordova-hot-code-push都能幫你做,具體可以參考插件的官方wiki.
依賴
實現
- 首先需要有一個ionic工程(具體可參考ionic官網)
- cd 到工程目錄下
- 安裝cordova-hot-code-push-plugin插件
cordova plugin add cordova-hot-code-push-plugin - 安裝cordova-hot-code-push-local-dev-addon
cordova plugin add cordova-hot-code-push-local-dev-addon - npm install -g cordova-hot-code-push-cli
- 運行cordova-hcp build,命令完成之後在項目的www目錄下會生成chcp.json和chcp.manifest兩個文件
- 修改config.xml(url所指向的路徑後面會說明,native-interface指的是當前最小內核版本)
<chcp>
<config-file url="http://serverhost:serverport/hotcode/test/www/chcp.json"/>
<native-interface version="1" />
</chcp> - 修改chcp.json(content_url更新文件放的路徑,release版本號,min_native_interface適用的最小內核版本【一定是整數,這個千萬別弄錯了】)
{
"content_url": "http://serverhost:serverport/hotcode/test/www",
"release": "2017.03.23-15.12.24",
"min_native_interface": 1
} - 搭建自己的熱更新服務,其實就是在tomcat下放個空項目,然後在空項目的前端根目錄下把www的內容都放進去,啓動tomcat,前幾步說的serverhost和serverport指向tomcat
- 運行cordova build,然後把安裝包裝到測試機上
- 隨便修改一個js(www目錄裏的),然後運行cordova-hcp build
- 把chcp.json按上面的格式修改一下,注意別把這動生成的版本號給改了
- 把www裏的東西拷到tomcat的hotcode相應的目錄下
- 等一會兒(差不多5分鐘),測試機上就會自動更新了
經驗
- 最好在服務端加一個filter,這樣就可以看到是否有去服務端加載資源了
- 如果等了有點久,手機端還是沒有什麼反應,這時間把手機端進程手動殺了,再進應用就好了