2016-09-17 3 views
0

Ionicクラウドから最新のスナップショットを取得し、Androidデバイスにインストールしようとしています。私はコードをIonic Deployのドキュメントから直接コピーしましたが、コードはエラーなく正常に動作しますが、実際に古いファイルをIonic Cloudにアップロードした新しいファイルで更新するようには見えません。Ionic Deployスナップショットを更新しない

ionic upload --note "バージョンx "

次に、クラウドに行き、をクリックします。コンソールログ(Androidデバイスから)のログフィードを見ると、になっていることがわかりました。

しかし、1つのファイルの単純なテキストの変更は、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()を実行ブロックまたはonDeviceの準備もできますか? – user1261710

関連する問題