ionic3 項目熱更新使用

配置熱更新

熱更新的原理:

這一步我就不上圖了,服務器上的chcp.manifest文件對比本地生成的chcp.manifest中的hash值,如果hash值對應的文件發(fā)生更改,通過chcp.json中設置的文件存放地址,進行文件流的下載更新。

安裝熱更新cli

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

安裝熱更新插件
ionic cordova plugin add cordova-hot-code-push-plugin

開發(fā)使用可以安裝配套插件
cordova plugin add cordova-hot-code-push-local-dev-addon

使用熱更新

*插件安裝完畢,在www目錄下面,會生成兩個文件,chcp.json文件,跟chcp.manifest文件。當你運行corodva-hcp server的時候,你每更改一個文件,chcp.manifest跟chcp.json就會發(fā)生相應的更改。
*但是生成的地址會變成一個臨時的鏡像地址,所以需要添加一個cordova-hcp.json 文件模板。這時候不需要啟動cordova-hcp server,直接啟動cordova-hcp build
cordova-hcp.json文件內容大致如下

"content_url": "http://yourserverAddress/www", //遠程地址www后面不要加上/
"update": "now"http://分三種情況
// start - app啟動時安裝更新. 默認值.
// resume - app從后臺切換過來的時候安裝更新.
// now - web內容下載完畢即安裝更新.
 "release": "2017.07.01-15.52.14",  //版本號
 "min_native_interface": 1 //min_native_interface:版本設置。
 在config.xml我們設置的native-interface version=5 那么我們生成的就會是 
 "min_native_interface":5

  • 插件安裝完畢,需要在config.xml文件里面添加
<chcp>
  <native-interface version="1" />
  <config-file url=".../chcp.json" />
<chcp/>
...為你的服務器地址。

定義當前版本:

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

如果你應用程序的版本比服務器的版本還高,那么插件將不會從服務器加載新的更新,默認設置為1。

自動下載:

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

定義插件是否允許下載更新。最初更新提取是自動執(zhí)行的,可以禁用它,并通過JavaScript模塊手動執(zhí)行。默認情況下,首選項設置為true。

自動安裝:

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

定義插件是否允許安裝更新。最初更新安裝是自動執(zhí)行的,可以禁用它,并通過JavaScript模塊手動執(zhí)行。默認情況下,首選項設置為true。

  • 如果你的服務器,無法接受跨域訪問的話,熱更新插件很可能會不成功,所以可以更改服務器的配置,使其接受跨域下的訪問,插件才能從服務器上把文件給下載下來。

簡單的說明

可用事件
chcp_updateIsReadyToInstall - web內容已經下載并可以安裝時觸發(fā).
chcp_updateLoadFailed - 插件無法下載web更新時觸發(fā). 詳細錯誤信息在事件參數里.
chcp_nothingToUpdate - 無可用更新下載時觸發(fā).
chcp_updateInstalled - web內容安裝成功時觸發(fā).
chcp_updateInstallFailed - web內容安裝失敗時觸發(fā). 詳細錯誤信息在事件參數里.
chcp_nothingToInstall -無可用更新安裝時觸發(fā).
chcp_assetsInstalledOnExternalStorage - 插件成功把app內置的web內容拷貝到外置存儲中時觸發(fā). 你可能需要開發(fā)調試時用到這個事件,也許不會.
chcp_assetsInstallationError -插件無法拷貝app內置的web內容到外置存儲中時觸發(fā). 如果此事件發(fā)生了 - 插件不再工作. 也許是設備沒有足夠的存儲空間導致. 詳細錯誤信息在事件參數里.

在需要使用熱更新的文件中聲明
declear  var chcp:any //防止程序提示找不到chcp

更加詳細的說明跟使用可以參考
http://blog.csdn.net/lovelyelfpop/article/details/50848524
或者
http://www.itdecent.cn/p/9e3cd54f5f97

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現,斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 熱更新:當用戶初次打開app,它會將所有的web內容復制一份到外部存儲。此后從外部存儲加載web內容,而并不加載打...
    方千竹閱讀 1,822評論 0 0
  • 簡介 關于Cordova的熱更新問題,國內的資料比較少,許多博客上都是胡亂的抄襲,準確性極低,無任何實用性,并且步...
    cl9000閱讀 6,536評論 10 15
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,255評論 6 342
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,789評論 25 709

友情鏈接更多精彩內容