cordova-hot-code-push ,Cordova熱代碼推送插件提供了在應用程序中執行基於Web的內容的自動更新的功能。使用此插件可以更新存儲在項目的www文件夾中的所有內容。
cordova-hot-code-push 插件的github url :https://github.com/nordnet/cordova-hot-code-push
更新流程
用戶打開應用程序,Plugin get被初始化,並在后台線程中啟動更新加載程序。更新加載器config-file
從config.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" />
</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.添加安卓平台
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 在真機上了嘛,現在我們退出應用程序,再打開應用程序可以發現內容已經改變了。
原本項目內容: 退出應用再打開時候內容:
如果你對此文章有疑問的歡迎評論,此隨筆乃本人原創僅作記錄,如若轉載請說明出處。
若是此文章對你有幫助,文章右下方點贊推薦。