2016-10-25 8 views
0

ngCordovasローカル通知プラグインを使用してローカル通知を設定しました。彼らは発砲し、アプリケーションによって受信されています。しかし、その後、私は私がしたい特定のページにリダイレクトすることはできません。ここで私の関連するコードは、クリックイベント内のconsole.logが発砲しているとコメントアウトされたコードは、ページにリダイレクトされますが、その時点ではイオン性の外です(CSSの読み込み、jsブートストラップなど)ローカル通知でリダイレクトするionicでクリックしないでください

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'); 
}); 

答えて

0

クリック関数自体ではなく.run関数で状態をインポートすると、$ state.go( 'notification')が実際に機能します。