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文件並刪除即可

2. https://github.com/nordnet/cordova-hot-code-push/wiki/JavaScript-module, 可以用js邏輯自己控制app熱更新


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM