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 ().
- Android GCM un dispositivo tiene múltiples registro
- Notificación de emisión del receptor de difusión
- Un solo dispositivo de repente dejó de empujar C2DM desde mi servidor
- Empuje iónico - GCM_INVALID_AUTH
- Cómo contar android gcm carga útil
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.
- ParseInstallation.getCurrentInstallation (). SaveInBackground (); no funciona
- Android push notificación cómo reproducir el sonido predeterminado
- Enviar notificaciones push a Android
- Notificaciones push en Android: Google GCM vs Amazon SNS?
- Cómo recuperar ID de registro y enviar un mensaje a una aplicación de terceros en android c2dm0 +
- ¿Cómo implementar C2DM en android?
- Error de difusión intención callback: resultado = CANCELADO forIntent {act = com.google.android.c2dm.intent.RECEIVE pkg = com.flagg327.guicomaipu (tiene extras)}
- Cómo puedo recibir notificaciones de GCM cuando se detiene la aplicació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
- DrawableCompat.setTint (drawable, color) vs Drawable.setColorFilter (color, modo)
- Archivo de expansión apk no se descarga desde playstore