Cordova實現app熱更新
阿新 • • 發佈:2020-07-29
本例主要實現App的熱更新技術,不需要打安卓包或者蘋果包,直接實現app內容的更新,前提是沒有安裝外掛或者修改原生底層的部分,只更新web content的內容。主要藉助cordova框架實現
1.安裝外掛
執行下面2個指令碼
1 // cordova熱更新外掛 2 cordova plugin add cordova-hot-code-push-plugin 3 4 // 熱更新工具 5 npm install -g cordova-hot-code-push-cli
2.生成配置檔案cordova-chcp.json
// 終端執行下面命令,專案根目錄生成cordova-chcp.jsoncordova-hcp init
// 執行此命令,在終端會有引導步驟,有些可直接enter跳過,後面可以在生產的檔案在做修改
說明:配置檔案簡介
{ "name": "cpcg", "autogenerated": true, "ios_identifier": "", "android_identifier": "", "update": "resume", "content_url": "http://192.168.5.17:1010/www/", "min_native_interface": 1 } name: 專案名稱,可以隨便 autogenerated:這個欄位原先沒有,需要複製過去,不然不會自動更新app update:app更新方式,有3種: "update": "start" // 在啟動應用程式時安裝更新 "update": "resume" // 在恢復應用程式(從背景移動到前景狀態)或啟動時,安裝更新;預設使用 "update": "now" // 從伺服器載入更新後立即安裝 content_url:"http:// ...../www/" //靜態檔案伺服器地址
min_native_interface: 1 //可用以做App升級(可以不填)
3.config.xml
<widget>...
...
...
<chcp> <auto-download enabled="true" /> <auto-install enabled="true" /> <config-file url="http://........./www/chcp.json" /> <native-interface version="1" /> </chcp> /** config-file:配置檔案 chcp.json 從伺服器上載入的路徑(必須的配置項) auto-download:是否自動下載熱更新程式碼,預設是 true auto-install:是否自動安裝熱更新程式碼,預設是 true native-interface:當前 native side 的版本號
**/
</widget>
4.在www資料夾中生成chcp.json和chcp.manifest
// 執行下面命令 cordova-hcp build
// 執行該命令會在chcp.json檔案中增加"release":"當前時間"
欄位,用於和伺服器檔案比較,是否進行熱更新
總結:上面基本配置全部完成後,具體的熱更新操作流程是,首先,編譯修改後的程式碼(cordova build 或者 框架其他的命令),會生成一個www的資料夾,然後執行cordova-hcp build,此命令會修改chcp.json的時間,然後將www資料夾替換到伺服器上面,app會根據設定的熱更新方式進行自動更新。
遇到的錯誤:
1. 執行 cordoca-hcp init時,可能會報一個js證書驗證的錯誤,在c盤的一個檔案裡面,只需要找到這個js檔案並刪除即可