重定向本地通知单击离子不工作

时间:2016-10-25 21:40:34

标签: javascript angularjs ionic-framework ngcordova

所以我使用ngCordovas本地通知插件设置了本地通知。他们正在解雇并被应用程序接收。但是之后我似乎无法重定向到我想要的特定页面。这是我的相关代码,click事件中的console.log正在触发,注释掉的代码将重定向到页面,但在那时它是离子的(css没有加载,js没有自举等)

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'ngCordova', 'ionic-numberpicker', 'ngStorage'])
.config(function($ionicConfigProvider){
    $ionicConfigProvider.views.maxCache(0);
  })
.run(function($ionicPlatform, $rootScope, $cordovaLocalNotification) {
  $ionicPlatform.ready(function() {
    $rootScope.$on("$cordovaLocalNotification:click", function(notification, $state) {
      console.log('clicked notification');
      //window.location.href = 'templates/notification.html';
      $state.go('notification');
    });

    if (window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);
    }
  });
})

.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider
    .state('app', {
    url: '/app',
    abstract: true,
    cache:false,
    templateUrl: 'templates/menu.html',
    controller: 'AppCtrl'
  })

  .state('app.settings', {
    url: '/settings',
    cache:false,
    views: {
      'menuContent': {
        templateUrl: 'templates/settings.html',
        controller: 'SettingsCtrl'
      }
    }
  })

  .state('app.list', {
      url: '/list',
      cache:false,

    views: {
        'menuContent': {
          templateUrl: 'templates/list.html',
          controller: 'ListCtrl'
        }
      }
    })
    .state('app.home', {
      url: '/home',
      cache:false,

      views: {
        'menuContent': {
          templateUrl: 'templates/home.html',
          controller: 'HomeCtrl'
        }
      }
    })
    .state('app.contact', {
      url: '/contact',
      cache:false,

      views: {
        'menuContent': {
          templateUrl: 'templates/contact.html',
          controller: 'ContactCtrl'
        }
      }
    })

  .state('app.user', {
    url: '/users/:userId',
    cache:false,

    views: {
      'menuContent': {
        templateUrl: 'templates/users.html',
        controller: 'UsersCtrl'
      }
    }
  })
    .state('notification', {
      url: '/notification',
      cache:false,
      templateUrl: 'templates/notification.html',
      controller: 'NotificationCtrl'
    });
  // if none of the above states are matched, use this as the fallback
  $urlRouterProvider.otherwise('/app/home');
});

1 个答案:

答案 0 :(得分:0)

$ state.go('notification')实际上可以在.run函数中导入状态而不是单击函数本身。