1. 程式人生 > >ionic cordova 熱更新

ionic cordova 熱更新

 真正放到伺服器老是不管用,檢視原始碼:


 // check if new version is available
        if ([newAppConfig.contentConfig.releaseVersion isEqualToString:_oldAppConfig.contentConfig.releaseVersion]) {
            [self notifyNothingToUpdate:newAppConfig];
            return;
        }

  邏輯其實特別簡單,對比當前應用內和你伺服器上的releaseversion,如果不一樣,就去載入伺服器的www檔案,然後對比chcp.manifest下的hash值,更新檔案,下次再開啟應用時,就使用新的檔案。記住是下次開啟應用,才使用新的檔案。

    放伺服器上,注意幾點:

  1.config.xml新增節點如下:

  <chcp>
    <config-file url="http:/yourserver/www/chcp.json" />
  </chcp>

  2.生成平臺程式碼,把平臺程式碼下www資料夾下的chcp.json的content_url改成:

    http:/yourserver/www,確認對應的config.xml下chcp節點是對的。

    執行對應平臺程式碼。

   3.命令進入自己專案根目錄,執行cordova-hcp build,這個執行後,它會自動去改chcp.json

下的release值, 

   和chcp.manifest下的改過的檔案的hash

  4.把你改過的檔案,chcp.json,chcp.manifest這些本地的放到伺服器上。覆蓋對應的檔案(當然都在www資料夾下,可以直接上傳www)。

  git官網上講的是本地伺服器測試,沒什麼問題,放到自己伺服器,還是要注意下。當然不理解很容易急,最好就是自己在oc裡打斷點,看到releaseversion是不是一樣,然後下載後的檔案是不是一樣,就知道你哪裡改的不對了。

  另外,其他一些問題:

  如果你跑cordova-hcp build,它會去生成chcp.json,那裡面的值就改了,可以在專案根目錄建一個cordova-hcp.json,寫一些default配置

  cordova-hcp.json 可以長這樣
  

1 2 3 4 5 { "content_url""http://yourserverAddress/www", "autogenerated"true, "update""now" }

  IOS

  ios裡報_-swift.h找不到,把這個改成  專案名-swift.h,

    cordova.js一定要引用,下面的程式碼最終走到上面真正的去下載的地方,首先是js的

 1.

1 2 3 4 5 6 // Called when Cordova is ready for work. // Here we will send default callback to the native side through which it will send to us different events. channel.onCordovaReady.subscribe(function() { ensureCustomEventExists(); exec(nativeCallback, null, PLUGIN_NAME, pluginNativeMethod.INITIALIZE, []); });

// Plugin methods on the native side that can be called from JavaScript

  pluginNativeMethod = {

    INITIALIZE: 'jsInitPlugin',

    FETCH_UPDATE: 'jsFetchUpdate',

    INSTALL_UPDATE: 'jsInstallUpdate',

    CONFIGURE: 'jsConfigure',

    REQUEST_APP_UPDATE: 'jsRequestAppUpdate',

    IS_UPDATE_AVAILABLE_FOR_INSTALLATION: 'jsIsUpdateAvailableForInstallation',

    GET_INFO: 'jsGetVersionInfo'

  };

 上面的jsInitPlugin,就在oc裡,就是每次你啟動app,初始化外掛時,走這個jsInitPlugin,方法執行循序:

 jsInitPlugin-->

[self _fetchUpdate:nil withOptions:nil]-->

[self _fetchUpdate:command.callbackId withOptions:fetchOptions]-->

[[HCPUpdateLoader sharedInstance] executeDownloadRequest:request error:&error] -->

[self executeTask:task]-->

[task runWithComplitionBlock:^{ _isExecuting = NO;}]-->

- (void)runWithComplitionBlock:(void (^)(void))updateLoaderComplitionBlock{

   這裡就是上面的更新程式碼

}

轉載自:http://www.cnblogs.com/johnzhu/p/5830450.html

相關推薦

ionic cordova 更新

 真正放到伺服器老是不管用,檢視原始碼: // check if new version is available if ([newAppConfig.contentConfig.releaseVersion isEqualToString:

cordova更新

tips .config enable all ble tip auto ini develop cordova熱更新一。app部分1.npm安裝npm install -g cordova-hot-code-push-cli 2.cordova插件安裝cordova pl

ionic 3 更新 Hot Code Push

lis swift 都沒有 pack 時間 onf bash andro cordova   最近用ionic 3 做的app業務做的差不多了,突然想到以後app如果有更新該怎麽搞?想到我們的app後期更新應該不大,,最多就是改改bug和增加下用戶體驗,如果只有一些小的更新

Cordova - 更新 !

Cordova版本:8.0.0 更新APP平臺:Android 作業系統:Windows Cordova的熱更新,作用是把www內的變動部分更新到APP中,實現主程式不動,完成更新!!這個熱更新功能,對於IOS APP更有意義,因為,可以避免繁瑣的蘋果稽核!!這個熱更新幾乎是所有Cordova開發都需要

cordova更新外掛cordova-hot-code-push學習

準備工作:安裝cordova hot code push客戶端工具 npm install -g cordova-hot-code-push-cli 一、本地熱更新開發 1、建立一個新的測試demo工程並進入該專案 2、新增熱更新外掛:cordova plugin

Cordova更新cordova-hot-code-push

原文轉載自:https://www.cnblogs.com/huangenai/p/7137475.html cordova-hot-code-push ,Cordova熱程式碼推送外掛提供了在應用程式中執行基於Web的內容的自動更新的功能。使用此外掛可以更新儲存在專案的www資料夾中的所有內容。 cor

cordova更新的配置

在這裡我們需要在已經安裝完畢的cordova環境下操作。如果cordova的環境沒有安裝完成,請先完成cordova環境的搭建。1、我們的熱更新操作基於外掛:cordova-hot-code-push-plugin。首先,安裝外掛cordova-hot-code-push-p

Cordova更新和App升級 - 簡書

原文: Cordova熱更新和App升級 - 簡書 公司的cordova專案前段時間增加了熱更新功能,自己第一次做的時候在網上查找了很多資料,有的資料寫的並不全面遇到了很多坑。因此總結一些在開發過程中遇到了問題和解決辦法。 cordova專案熱更新分為兩個部分,網頁內容(web

Cordova 更新(Android)

研究Cordova一段時間了,其中酷斃(苦逼)的學習真實無fuck說,官方文件,中文,各種度娘,各種驗證,沒辦法學習就是積累的過程鑑於學習過程的艱辛,想想還有更多的Cordova學習者的困擾,便開始寫文章,希望能給一些人的幫助。由於本人是Android開發的,研究混合開發,必

cordova更新外掛的使用

cordova常用命令 cordova plugin add plugin_name --save cordova plugin rm plugin_id --save cordova platform add android|ios|windows -

Cordova更新(三、版本控制)

需求:1,由於app稽核的限制,app稽核狀態和釋出上線狀態展示內容有區別2,各大應用市場稽核狀態不一致,有的在稽核,有的稽核失敗了,有的稽核通過了,所以各大應用市場的app版本是不一樣的,如果不同版本的app裡面的內容發生bug又如何解決所以這就需要一個釋出的版本控制了。這

ionic 更新 cordova-hot-code-push

ima auto width 自動 平臺 不同 2.3 轉載 加載 cordova-hot-code-push ,Cordova熱代碼推送插件提供了在應用程序中執行基於Web的內容的自動更新的功能。使用此插件可以更新存儲在項目的www文件夾中的所有內容。 cordova-h

ionic 1,2 cordova更新 cordova-hot-code-push

記錄備忘! 首先安裝: 不需要本地除錯的,直接與後臺配合除錯的,直接安裝以下外掛 1、安裝熱修復外掛:  cordova plugin add cordova-hot-code-push-plugin 2、安裝cordova熱修復CLI: npm in

ionic 1,2 cordova更新 cordova-hot-code-push

記錄備忘! 首先安裝: 不需要本地除錯的,直接與後臺配合除錯的,直接安裝以下外掛 1、安裝熱修復外掛:  cordova plugin add cordova-hot-code-push-plugin 2、安裝cordova熱修復CLI: npm install

Cordova - XCode10編譯更新插件錯誤解決方法!

orm 最終 插件 mes source std 錯誤提示 ica mru 操作系統:OSX10.14 XCode:10.1 熱更新插件:https://github.com/nordnet/cordova-hot-code-push 這個熱更新插件,在安卓下編譯,沒有問題

Cordova - XCode10編譯更新外掛錯誤解決方法!

作業系統:OSX10.14 XCode:10.1 熱更新外掛:https://github.com/nordnet/cordova-hot-code-push 這個熱更新外掛,在安卓下編譯,沒有問題,可以順利編譯,但是在最新版的XCode下編譯,卻出現錯誤了! 錯誤資訊:ld: library not

Cordova 代碼更新 - 簡書

項目目錄 外部存儲 簡單 plugin 新增 port html cal llb 原文:Cordova 代碼熱更新 - 簡書 Cordova 代碼熱更新 [圖片上傳失敗...(image-a19be7-1521624289

Cordova - 實現更新 !

原文: Cordova - 實現熱更新 ! Cordova版本:8.0.0 更新APP平臺:Android 作業系統:Windows Cordova的熱更新,作用是把www內的變動部分更新到APP中,實現主程式不動,完成更新!!這個熱更新功能,對於IOS APP更有意義,因為,可以避免繁瑣的蘋果稽核!

Ionic 更新

原理 外掛安裝 1.安裝python,cordova-hcp cli 依賴此程式 下載地址:https://www.python.org/downloads/release/python-2712/ 2.cordova-hcp cli安裝 n

ionic利用gulp混淆程式碼與編譯更新

前言 如果你Ionic專案即有混淆又有熱更新機制,雖然常規目錄結構可以滿足二者,但編譯過程是非常複雜,ionic預設讀取的是www目錄,而混淆後的原始碼是打包在app中,再加上熱更新的配置也預設是生成在www中,這樣一來熱更新的md5對比檔案就存在不一致的情況,那麼問題來了,有辦法可以解決嗎?答案是肯定的,