Cordova Phonegap notificaciones locales no funcionan

Quería decir primero que este es un plugin muy bonito ( https://github.com/katzer/cordova-plugin-local-notifications ) pero tener algunas dificultades para que funcione.

Estoy usando una CLI de Android y Phonegap. He intentado CLI 5.0 y ahora Phonegap 3.5.0, éste es mi config.xml:

<preference name="phonegap-version" value="3.5.0" />

En mi config.xml he probado todas estas combinaciones:

 <plugin name="de.appplant.cordova.plugin.local-notification" spec="0.8.1" source="pgb" /> <gap:plugin name="de.appplant.cordova.plugin.local-notification" /> <plugin name="de.appplant.cordova.plugin.local-notification" source="pgb" /> 

Sin embargo, las notificaciones no aparecen – nada sucede en el teléfono – nada, nada, zilch. También he descargado la aplicación KitchenSink ( https://github.com/katzer/cordova-plugin-local-notifications/tree/example ) e instalada en Phonegap build y mi teléfono y no ocurre nada de nuevo.

Este es mi código en index.html así que cuando el teléfono se dispara debe registrar una notificación local lo antes posible:

 cordova.plugins.notification.local.registerPermission(function (granted) { // console.log('Permission has been granted: ' + granted); }); cordova.plugins.notification.local.schedule({ id: 1, title: 'Reminder', text: 'Dont forget to pray today.', every: 'minute', icon: 'res://icon', smallIcon: 'res://ic_popup_sync' }); 

También lo intenté

 cordova.plugins.notification.local.schedule({ id: 2, text: "Good morning!", firstAt: tomorrow_at_8_am, every: "day" // "minute", "hour", "week", "month", "year" }); 

Incluso la aplicación KitchenSink no funciona – no pasa nada en el teléfono ??

Mi versión de Android es: 5.1.1

¿Cómo puedo obtener notificaciones locales para que aparezcan en Phonegap?

Yo también he pasado muchas horas tratando de conseguir este plugin de trabajo y tengo, pero lo encuentro es uno de los más temperamental.

Dentro de su js –

 var testNotifications = function () { document.addEventListener("deviceready", function () { console.warn("testNotifications Started"); // Checks for permission cordova.plugin.notification.local.hasPermission(function (granted) { console.warn("Testing permission"); if( granted == false ) { console.warn("No permission"); // If app doesnt have permission request it cordova.plugin.notification.local.registerPermission(function (granted) { console.warn("Ask for permission"); if( granted == true ) { console.warn("Permission accepted"); // If app is given permission try again testNotifications(); } else { alert("We need permission to show you notifications"); } }); } else { var pathArray = window.location.pathname.split( "/www/" ), secondLevelLocation = window.location.protocol +"//"+ pathArray[0], now = new Date(); console.warn("sending notification"); var isAndroid = false; if ( device.platform === "Android" ) { isAndroid = true; } cordova.plugin.notification.local.schedule({ id: 9, title: "Test notification 9", text: "This is a test notification", sound: isAndroid ? "file://sounds/notification.mp3" : "file://sounds/notification.caf", at: new Date( new Date().getTime() + 10 ) // data: { secret:key } }); } }); }, false); }; 

Ahora en su etiqueta html –

 <button onclick="testNotifications()">Test notification</button> 

Eso debería activar una notificación o advertirle que necesita permisos. Además, la sugerencia es asegurarse de que sus notificaciones están en una carpeta en la raíz del proyecto. Android debe ser mp3 y ios caf

Respuesta 1: para la versión 3.5.0

Echa un vistazo a plugin.xml del plugin . Vea la línea 22

  <engine name="cordova" version=">=3.6.0" /> 

Que significa que el complemento sólo admite la versión superior a 3.6.0 y que está utilizando 3.5.0

Respuesta 2: para la versión 5.0 o superior

Pruebe el siguiente código como index.html . Si se ejecuta perfectamente entonces y otras opciones en notification.schedule . Ya que no hemos proporcionado tiempo (en) la notificación de opción se disparará de inmediato.

 <html> <script type="text/javascript" src="cordova.js"></script> <script> document.addEventListener('deviceready', onDeviceReady.bind(this), false); function onDeviceReady() { cordova.plugins.notification.local.schedule({ id: 1, title: "Sample Notification", text: "foo", every: "week", data: { meetingId: "123#fg8" } }); }; </script> <body> </body> </html> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.