恢复或暂停cordova事件后如何解决?

时间:2015-04-21 13:49:23

标签: javascript angularjs cordova ionic-framework ionic

我们可以使用cordova事件监听器监听事件“恢复”和“解决”。在离子平台中,this corresponds to

  $ionicPlatform.on('resume', function() {
    $rootScope.$broadcast('onResume');
  });

  $ionicPlatform.on('pause', function() {
    $rootScope.$broadcast('onPause');
  });

我的应用的某些页面需要决定才能发生(请参阅下面的authResolve)。

但是,一旦用户退出应用程序(双击iphone上的主页按钮),然后返回,如何再次调用该功能?就像你如何将resolve函数与上面的cordova事件监听器结合起来一样?谢谢!

app.js(部分内容)

.config(function($stateProvider, $urlRouterProvider) {
  //
  $urlRouterProvider.otherwise('/auth');

  // 
  var authResolve = function ($q, Auth) {
    var qResolve = $q.defer();
    var AuthObj = Auth.getAuthObj();
    switch (AuthObj.authStatus) {
      case true:
        qResolve.resolve("AUTH_RESOLVE_SUCCESS");
        break
      case false:
        qResolve.reject("AUTH_RESOLVE_UNAUTHORIZED");
        break
      default: 
        qResolve.reject("AUTH_RESOLVE_OTHER", AuthObj);
        break
    };
    return qResolve.promise;
  };

 // REST OF .config

    .state('tab.album', {
    url: '/dash/:albumName',
    views: {
      'menuContent': {
        templateUrl: 'templates/tab-album.html',
        controller: 'AlbumCtrl',
        resolve: {authResolve: authResolve}
      }
    }
  })

})

1 个答案:

答案 0 :(得分:1)

我试试这个:

$ionicPlatform.on('resume', function() {
  $state.transitionTo($state.current, $stateParams, {
      reload: true,
      inherit: false,
      notify: true
  });
});

(来源:Reloading current state - refresh data