Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Push Notification

Boa noite , eu terminei os dois cursos de ionic e consegui desenvolver um app perfeitamente, minha dúvida não faz parte das aulas mas acho que talvez consigam me ajudar. As notificações vem perfeitamente no método push.on , mas esse método ouvinte esta no arquivo app.js eu gostaria de alertar o controller específico sobre o push , é possível replicar esse código para o controller ou de alguma forma criar um ouvinte no controller que receba o push diretamente ?

o Código é similar a esse , comentei o que gostaria de fazer dentro do método push.on

.run(function($ionicPlatform, $rootScope) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      cordova.plugins.Keyboard.disableScroll(true);

    }
    if (window.StatusBar) {
      // org.apache.cordova.statusbar required
      StatusBar.styleLightContent();
    }

    var push = PushNotification.init({ "android": {"senderID": "PROJECT_NUMER", icon : "icon"},
         "ios": {"alert": "true", "badge": "true", "sound": "true"}, "windows": {} } );

    push.on('registration', function(data) {
        console.log(data);
        $rootScope.id = data.registrationId;
        $rootScope.$apply();
    });

    push.on('notification', function(data) {
       // PASSAR ESSE MÉTODO PARA O CONTROLLER DESSA FORMA PODERIA ATUALIZAR A LISTA SEM REFRESH
    });

    push.on('error', function(e) {
        alert('registration error: ' + e.message);

    });
  });
})
2 respostas
solução!

Oi.

Vc pode enviar esse dado que vc quer para uma determinada controller usando o $broadcast.

Da uma olhada sobre esse assunto no AngularJS. É bom vc entender a teoria por trás dele e depois sair usando.

Aqui tem um exemplo de como vc pode fazer

https://toddmotto.com/all-about-angulars-emit-broadcast-on-publish-subscribing/

Boa Lazaro , realmente era o $broadcast !! Muito obrigado.

no app.js

push.on('notification', function(data) {
  $rootScope.$broadcast('push', data);    
});

e no controller o ouvinte ficou assim

$scope.$on('push', function(event, notification) {
  alert(notification.message);
});