1. 程式人生 > >Cordova熱更新cordova-hot-code-push

Cordova熱更新cordova-hot-code-push

原文轉載自:https://www.cnblogs.com/huangenai/p/7137475.html

cordova-hot-code-push ,Cordova熱程式碼推送外掛提供了在應用程式中執行基於Web的內容的自動更新的功能。使用此外掛可以更新儲存在專案的www資料夾中的所有內容。

cordova-hot-code-push 外掛的github url :https://github.com/nordnet/cordova-hot-code-push

更新流程

使用者開啟應用程式,Plugin get被初始化,並在後臺執行緒中啟動更新載入程式。更新載入器config-fileconfig.xml

指定的網址載入並載入JSON。然後將release載入的配置的版本與當前安裝的配置進行比較。如果他們不同 - 我們去下一步,程式通過content_url配置來載入清單檔案。

 

1.建立一個ionic 專案

首先你先新建一個ionic專案,在這裡我新建的是ionic版本是3.5

複製程式碼
ionic start CordovaHotCodePush tabs

cd CordovaHotCodePush npm install ionic serve
複製程式碼

2.新增外掛

新增cordova-hot-code-push外掛

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

新增用於本地開發的外掛

cordova  plugin add cordova-hot-code-push-local-dev-addon

安裝Cordova Hot Code Push CLI客戶端:

npm install -g cordova-hot-code-push-cli

3.配置

找到專案目錄下的config.xml檔案,新增以下資訊到config.xml檔案中:

<chcp>
     <config-file url="http://192.168.1.203:8121/chcp.json" />
       <native-interface version="1" />
</chcp>

這裡說明下關於config.xml檔案裡<chcp></chcp>應該怎麼配置。

配置檔案url:

<chcp>
     <config-file url="http://192.168.1.203:8121/chcp.json" />
</chcp>

URL指向的是我伺服器更新檔案的路徑的chcp.json檔案,在這裡我是部署在iis 上,網站的物理路徑我直接指向了專案的www資料夾。

在本地開發模式的情況下,如果config-file未定義,則會自動設定為本地伺服器上的應用程式配置路徑。

定義當前版本:

<chcp>
    <native-interface version="5" /> </chcp>

如果你應用程式的版本比伺服器的版本還高,那麼外掛將不會從伺服器載入新的更新,預設設定為1。

自動下載:

<chcp>
  <auto-download enabled="false" /> </chcp>

定義外掛是否允許下載更新。最初更新提取是自動執行的,但您可以禁用它,並通過JavaScript模組手動執行。預設情況下,首選項設定為true

 

自動安裝:

<chcp>
  <auto-install enabled="false" /> </chcp>

定義外掛是否允許安裝更新。最初更新安裝是自動執行的,但您可以禁用它,並通過JavaScript模組手動執行。預設情況下,首選項設定為true

 

然後執行:

cordova-hcp sever

cordova-hcp build

現在 在專案檔案下的www檔案裡面我們可以看到兩個新增的檔案,chcp.json和chcp.manifest。

chcp.json就是我上面說的config.xml裡 config-file url 指向的那個chcp.json檔案。

 

接下來詳解一下chcp.json裡面有什麼東西

當你執行cordov-hcp build 的時候 她裡面的東西就會自動更新成這樣

{
  "autogenerated": true,
  "release": "2017.07.08-16.34.13"
}

release是我們生成的時間,除了這兩個,還有其他的需要配置的。

content_url:伺服器地址 我們在config.xml配置的config-file 是這個http://192.168.1.203:8121/chcp.json,那麼這裡我們就是這樣的http://192.168.1.203:8121。
min_native_interface:版本設定。在config.xml我們設定的native-interface version=5 那麼我們生成的就會是 "min_native_interface"5.
update:可以設定的值有start:啟動應用程式時安裝更新;resume:從後臺狀態恢復應用程式時安裝更新;now:一旦下載就安裝更新;


現在我們將chcp.json 檔案修改成這樣
複製程式碼
{
  "autogenerated": true,
  "release": "2017.07.08-16.56.31",
  "name": "hea",
  "content_url": "http://192.168.1.203:8121",
  "update": "start",
  "min_native_interface": 1
}
複製程式碼

4.新增安卓平臺

cordova platform add android

執行在真機上

cordova run android

5.測試是否成功

我們修改專案的內容

然後 ionic serve 編譯,跑在瀏覽器上我們的頁面內容確實改變了。我們再執行cordova-hcp bulid,根據第三點配置,配置好chcp.json檔案。

複製程式碼
{
  "autogenerated": true,
  "release": "2017.07.08-17.22.34",
  "name": "hea",
  "content_url": "http://192.168.1.203:8121",
  "update": "start",
  "min_native_interface": 1
}
複製程式碼

剛才不是 cordova run android 在真機上了嘛,現在我們退出應用程式,再開啟應用程式可以發現內容已經改變了。

原本專案內容:                                                                           退出應用再開啟時候內容: