【问题标题】:Ionic Deploy not updating SnapshotIonic Deploy 不更新快照
【发布时间】:2016-10-22 16:03:03
【问题描述】:

我正在尝试从 Ionic 云获取最新快照并将其安装到 Android 设备上。我直接从 Ionic Deploy 文档中复制了代码,代码运行良好,没有错误,但似乎并没有用我上传到 Ionic Cloud 的新文件来更新我的旧文件

使用:ionic upload --note "version 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");
            }

【问题讨论】:

    标签: ionic-framework


    【解决方案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()函数会重新加载应用,所以作用域会被重新初始化,就像你第一次打开应用一样。

    祝你好运

    【讨论】:

    • 我怎样才能让 $ionicDeploy.load() 也再次调用运行块或 onDevice 准备好?
    猜你喜欢
    • 2011-01-10
    • 2017-02-22
    • 2015-01-07
    • 1970-01-01
    • 2012-10-09
    • 2016-04-06
    • 2020-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多