PhoneGap Build Notificación de empuje (Android)

Tengo problemas para recibir cualquier tipo de devolución de llamada para el complemento de notificaciones push para la creación de phonegap, he incluido el complemento dentro de config.xml.

Me he registrado en GCM y tengo mi número de proyecto necesario para pushNotification.register ().

También tengo acceso al objeto window.plugins.pushNotification, así que sé que ha incluido el complemento.

  • PhoneGap Versión de la compilación: 3.1
  • Hidratación: Discapacitados
  • Debug: Habilitado
  • Dispositivo: Samsung Tab 2

Mis archivos index.html js incluidos son:

<script type="text/javascript" src="phonegap.js"></script> <script type="text/javascript" src="PushNotification.js"></script> <script type="text/javascript" src="js/lib/jquery.js" ></script> <script type="text/javascript" src="js/lib/handlebars.js"></script> <script type="text/javascript" src="js/handlebars/helpers.js"></script> <script type="text/javascript" src="js/plugins/fastclick.js"></script> <script type="text/javascript" src="js/app.js"></script> 

Mis complementos config.xml incluidos son:

 // plugins <gap:plugin name="org.apache.cordova.console" /> <gap:plugin name="org.apache.cordova.device" /> <gap:plugin name="org.apache.cordova.geolocation" /> <gap:plugin name="org.apache.cordova.dialogs" /> <gap:plugin name="org.apache.cordova.inappbrowser" /> <gap:plugin name="org.apache.cordova.splashscreen" /> <gap:plugin name="com.phonegap.plugins.pushplugin" /> // access to external domains <access origin="*"/> 

Mi app.js llama a pushNotification.register ()

 var app = { init: function() { document.addEventListener("deviceready", this.onDeviceReady, false); }, onDeviceReady: function(){ // DO STUFF // .... // ENABLE PUSH this.push_init(); }, push_init: function(){ app.SENDER_ID = 123456789; // replaced by my actual GCM project no var pushNotification = window.plugins.pushNotification; pushNotification.register( function(){alert('Push: win');}, // never called function(){alert('Push: Error');}, // never called { senderID: app.SENDER_ID, ecb: "app.push_android" } ); }, // never called push_android: function(e){ alert('connection established...'); console.log( 'successfully started android' ); console.log( e ); } }; // start the app app.init(); 

Después de que se llama nada se ejecuta, app.push_android () es una función del objeto app.

Si no introdujo un senderID, obtengo un error diciendo que no hay ID de remitente, así que sé que algo está funcionando. Esto es tan frustrante ideas?

PS – También noté algo extraño, cuando consola.log la ventana.plugins.pushNotification devuelve un objeto vacío, sin embargo todavía puedo llamar a window.plugins.pushNotification.register (), pero pensé que sería visible dentro de la consola .Iniciar sesión.

Creo que he encontrado la solución.

Yo estaba pasando un entero en lugar de una cadena para la propiedad senderID en el objeto

No funciona

 pushNotification.register( function(){alert('Push: win');}, // NOT called function(){alert('Push: Error');}, // NOT called { senderID: 123456789, ecb: "app.push_android" } ); 

Funciona

 pushNotification.register( function(){alert('Push: win');}, // called function(){alert('Push: Error');}, // called { senderID: "123456789", ecb: "app.push_android" } ); 

Pruebe este código de notificación push –

 var pushNotification; document.addEventListener('deviceready', onDeviceReady, true); function onDeviceReady() { try { pushNotification = window.plugins.pushNotification; if (device.platform == 'android' || device.platform == 'Android') { pushNotification.register(successHandler, errorHandler, { "senderID": "123456789", "ecb": "onNotificationGCM" }); // required! } else { pushNotification.register(tokenHandler, errorHandler, { "badge": "true", "sound": "true", "alert": "true", "ecb": "onNotificationAPN" }); // required! } } catch (err) { txt = "There was an error on this page.\n\n"; txt += "Error description: " + err.message + "\n\n"; alert(txt); } }; // handle GCM notifications for Android function onNotificationGCM(e) { switch (e.event) { case 'registered': if (e.regid.length > 0) { alert(e.regid); storeToken(e.regid); } break; case 'message': if (e.foreground) { var my_media = new Media("beep.wav"); my_media.play(); } else { // otherwise we were launched because the user touched a notification in the notification tray. } break; case 'error': break; default: break; } } 

Enlazar

Referir el blog de Devgirl

  • Recepción del mensaje recibido Acknwoledgement From GCM Service
  • Notificación Push de Google Cloud Messaging
  • Script de GoogleCloudMessaging PHP siempre devolviendo invalidregistration
  • Notificaciones Push de XMPP (Openfire)
  • Error de GCM - googleCloudMessaging.register
  • Animación en la barra de notificaciones Vista personalizada
  • Solicitud del ID de registro de Google Cloud Messaging (GCM) cada vez que se inicia la aplicación
  • ¿Está lista la producción de GCM? ¿Deberíamos empezar a usarlo ahora?
  • Vibrar en la notificación push
  • Mostrar varias líneas en la notificación push android Phonegap
  • Consumo de energía de WebSockets
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.