2016-05-12 1 views
0

Hier ist meine Config-DateiRouting zu einem Zustand, in Anwendung auf Benachrichtigung klicken mit OneSignal Plugin in ionischen

(function() { 
    'use strict'; 
    angular 
    .module('app.core') 
    .config(['$ionicConfigProvider', '$httpProvider', '$compileProvider', function ($ionicConfigProvider, $httpProvider, $compileProvider) { 

     $ionicConfigProvider.tabs.position('bottom'); // other values: top 
     $compileProvider.debugInfoEnabled(false); // remove while debugging 

     $httpProvider.interceptors.push('authInterceptorService'); 
     document.addEventListener('deviceready', function ($state) { 

      var notificationOpenedCallback = function (jsonData) { 
       console.log('didReceiveRemoteNotificationCallBack: ' + JSON.stringify(jsonData)); 
      }; 
      window.plugins.OneSignal.init("xxxxx-xxxxxx-xxxxxx-xxxx", 
      { googleProjectNumber: "xxxxxxxxx" }, 
      notificationOpenedCallback); 


      window.plugins.OneSignal.getIds(function (ids) { 
       var deviceId = ids; 
       console.log(deviceId); 
       localStorage.setItem('deviceId', deviceId.userId); 
      }); 

      // Show an alert box if a notification comes in when the user is in your app. 
      window.plugins.OneSignal.enableInAppAlertNotification(true); 
     }, false); 

    }]); 

})(); 

Die notificationOpenedCallback auf Klick auf einer Push-Nachricht auf die Registerkarte der Vorrichtung gestapelt passiert .so ich gehen will eine bestimmte Route, anstatt nur die App zu öffnen, die es gerade tut. In meiner notificationOpenedCallback Funktion mag ich ein

$state.go('tabs.answered'); 

auf einen bestimmten Zustand wie

.state('tabs.answered', { 
     url: "/answered", 
     views: { 
      'tab-answered': { 
       templateUrl: "app/answeredfeed/answered.html", 
       controller: 'AnsweredCtrl', 
       controllerAs: 'vm' 
      } 
     }, 
     authRequired: true 
    }); 

Normalerweise tun würde ich auf Weg der Lage sein, aber das Problem ist, ich bin nicht in der Lage $ Zustand oder $ stateprovider zu injizieren so dass ich zu tabs.answered routen kann. Ist es überhaupt möglich, von Config zu routen oder habe ich alles falsch? Kann diese Funktionalität auf eine andere Weise ausgeführt werden?

Antwort

1

Changed angular.config angular.run und ich war in der Lage $ Injektor zu injizieren und damit ein

var state = $injector.get($state); 
state.go('desiredstate'); 
tun könnte
Verwandte Themen