2016-09-17 27 views
0

我試圖從Ionic雲中獲取最新的快照並將其安裝到Android設備上。我已經直接從Ionic Deploy文檔複製代碼,代碼工作正常,但沒有錯誤,但似乎並沒有實際更新我的舊文件,我上傳到Ionic Cloud上的新文件Ionic部署不更新快照

使用:離子上傳--note「版本x「

然後我轉到雲並單擊部署。在控制檯日誌(從Android設備)中查看日誌源時,可以看到快照是,發現的是已下載已提取

但是,即使我的Android設備上的應用程序中看不到一個文件中的簡單文本更改。我需要調用另一個函數$ ionicDeploy.extract();或$ ionicDeploy.load();

angular.module('starter', ['ionic', 'starter.controllers', 'ionic.cloud', 'starter.services','ngCordova','ngStorage','chart.js','angular-svg-round-progress']) 

    .config(function($ionicCloudProvider) { 

     $ionicCloudProvider.init({ 
     "core": { 
      "app_id": "xxxxxxxx" 
     } 
     }); 
    }) 

    .run(function($http,$ionicPlatform,$rootScope,$cordovaBluetoothSerial,$cordovaStatusbar,$window,$cordovaSQLite,$ionicDeploy) { 

     $ionicPlatform.ready(function() { 
      $rootScope.alreadyUpdated = 'false'; 

      if($rootScope.alreadyUpdated == 'false') 
      { 
       $ionicDeploy.check().then(function(snapshotAvailable) { 
         // When snapshotAvailable is true, you can apply the snapshot 
        $ionicDeploy.download().then(function() { 
          return $ionicDeploy.extract(); 

          $ionicDeploy.load(); 
          $rootScope.alreadyUpdated = 'true'; 
         }); 
       }); 
       console.log("MOST recent"); 
      } 

回答

1

$ionicDeploy.load()之前該行已return $ionicDeploy.extract();,這意味着你將永遠無法與$ionicDeploy.load()部分(return關鍵字使得它無法訪問的代碼 - 任何像樣的IDE甚至會強調這一點你)。

你應該更換這一部分:

$ionicDeploy.extract().then(function() { 
    console.log("Extracted"); 
    $ionicDeploy.load(); 
    $rootScope.alreadyUpdated = 'true'; //this also is not needed FYI, but I left it to keep your code intact. see note 
}); 

注意 - $ionicDeploy.load()後,就沒有必要調用$rootScope.alreadyUpdated。這是因爲load()函數將重新加載應用程序,所以範圍將被重新初始化,就像您第一次打開該應用程序一樣。

好運

+0

如何獲得$ ionicDeploy.load()以再次調用run塊或onDevice準備好? – user1261710