Search code examples
ionic-frameworkcordova-plugins

how to handle onNotification event in ngCordova push plugin


as a code template doing it like this,

.controller('PushNotificationsCtrl', function ($scope, $cordovaPush) {
var androidConfig = {
"senderID":"372433177444",
"ecb":"onNotification"
};

$cordovaPush.register(androidConfig).then(function(result) {
  // Success!
  $scope.pushSuccess = result
}, function(err) {
  $scope.pushSuccess = err;
});

I manage to successfully get an RegID from GCM. But then how do I manage onNotification from androidConfig ?


Solution

  • i found the solution.

    instead of doing this :

    var androidConfig = {
    "senderID":"372433177444",
    "ecb":"onNotification"
    };
    

    I do like this :

    var androidConfig = {
    "senderID":"372433177444",
    "ecb":"window.onNotification"
    };
    

    then

    window.onNotification = function(e) {
      switch( e.event )
      {
          case 'registered':
              if ( e.regid.length > 0 )
              {
                  console.log("Your regID is : " + e.regid);
              }
              break;
    
          case 'message':
              // this is the actual push notification. its format depends on the data model     from the push server
              console.log('message = '+e.message);
              angular.element(document.querySelector('#yata')).html(e.message);
              break;
    
          case 'error':
              console.log('GCM error = '+e.msg);
              break;
    
          default:
              console.log('An unknown GCM event has occurred');
              break;
      }
    };
    

    all work as expected now :)