1. 程式人生 > 實用技巧 >Cordova實現app熱更新

Cordova實現app熱更新

本例主要實現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.json
cordova-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檔案並刪除即可