Cordova Push Plugin: onNotificationGMC no se activa y no se puede obtener regID

Hola a todos estoy desarrollando una aplicación híbrida cordova que requiere el Servicio de Notificación Push de Android e iOS para trabajar y por eso he instalado el complemento cordova " PushPlugin ".

Aquí está mi código

Document.addEventListener ("deviceready", deviceready, false);

function deviceready() { try { pushNotification = window.plugins.pushNotification; pushNotification.unregister(successHandler, errorHandler); pushNotification.register( successHandler, errorHandler, { "senderID": "7645XXXXXXXX", "ecb": "onNotificationGCM" }); function successHandler(data) { alert("SUCCESS: " + JSON.stringify(data)); }; function errorHandler(e) { alert("ERROR" + e); } function onNotificationGCM(e) { alert("Done") } } catch (e) { alert(e); } } 

Cuando ejecuto mi aplicación, espero tener dos alertas: la de succesHandler y la de onNotificationGCM, pero solo dispara una de las siguientes: "OK" … Con este problema no puedo ni acceder al parámetro regID que será almacenado En mi servidor

¿Puede alguien explicarme por favor cómo conseguir el regID .. Todo mi trabajo depende de esto

Estoy probando esta aplicación en un Galaxy S4 Mini con Android 4.4.2.

FIJO

Moví el onNotificationGCM en una etiqueta vacía de la escritura como esto:

 <script> function onNotificationGCM(result) { alert(result.regid); } </script> 

Y ahora te da el REGID 🙂

Yo tuve el mismo problema. Si está utilizando AngularJS + IonicFramework no tiene que hacer esto:

Después de crear su fábrica con su función onDeviceReady, crea la función onNotificationGCM. Algo como esto:

App.factory ('PushProcessingService', function () {..

});

Function onNotificationGCM (e) {}

Estaba creando onNotificationGCM dentro de mi fábrica. Esto soluciona mi problema. Espero que pueda ayudarte.

En el marco iónico tienes un complemento listo: http://ngcordova.com/docs/plugins/pushNotifications/

Aquí hay un ejemplo para un código de trabajo para dispositivos android:

 module.run(function($cordovaPush) { var androidConfig = { "senderID": "replace_with_sender_id", "ecb": "replace_with_the_name_of_function that will return you the regid" }; document.addEventListener("deviceready", function(){ $cordovaPush.register(config).then(function(result) { // Success }, function(err) { // Error }) window.function replace_with_ecb(notification) { //notification.regid switch(notification.event) { case 'registered': if (notification.regid.length > 0 ) { alert('registration ID = ' + notification.regid); } break; case 'message': // this is the actual push notification. its format depends on the data model from the push server alert('message = ' + notification.message + ' msgCount = ' + notification.msgcnt); break; case 'error': alert('GCM error = ' + notification.msg); break; default: alert('An unknown GCM event has occurred'); break; } }; }, false); }); 

Este código sólo funciona un dispositivo real (no un emulador)

  • Notificaciones push de Android en China
  • No recibir notificaciones de notificación de pars en Android en BroadcastReceiver personalizado
  • Notificación Push de Android sin utilizar GCM
  • Force Parse Push Notifications para usar PPNS en lugar de GCM
  • Anular el registro de un dispositivo de GCM mediante la identificación de registro en Android
  • Enviar notificación automáticamente desde Firebase
  • PHP del servidor GCM - Error 401 no autorizado
  • ¿En Blackberry el jugador androide apoya notificaciones del empuje o C2dm?
  • Notificaciones Locales en Cordova 3.0.0
  • ¿Podemos usar VectorDrawable o VectorXML como iconos para notificaciones push en android?
  • Parse Push JSON problema de datos en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.