Notificación local repetida cada día en PhoneGap Android

Estoy tratando de enviar notificaciones todos los días desde mi aplicación mediante el complemento LocalNotification que encontré en github. Tengo el siguiente código que envía una notificación tan pronto como se inicia la aplicación.

var notification = cordova.require("cordova/plugin/localNotification"); document.addEventListener('deviceready', onDeviceReady, false); function onDeviceReady() { alert('device ready'); var id = 0; id++; newDate = new Date(); newDate.setUTCHours(1,30,1); notification.add({ id : id, date : newDate, message : "Your message here", subtitle: "Your subtitle here", ticker : "Ticker text here", repeatDaily : true }); } 

Pero quiero que la aplicación envíe notificación automáticamente sin abrirla. ¿Ajustar la opción repeatDaily a true?

Hice mi investigación y descubrí que otros fueron capaces de lograrlo usando el complemento LocalNotification.

No estoy muy seguro de cómo probar, ya que me obliga a mantener el AVD encendido por un día completo. El objetivo es muy simple. Necesito enviar una sola notificación todos los días a un usuario sin abrir la aplicación. ¡Cualquier ayuda será apreciada altamente !! Gracias !!

Nunca he utilizado el plugin, pero un poco de excavación en el código me muestra que sí, siempre y cuando se establece repeatDaily a la true su notificación estará allí todos los días.

Si echa un vistazo a la clase AlarmHelper , puede ver la cláusula if para que el parámetro se repita todos los días.

 final AlarmManager am = getAlarmManager(); ... if (repeatDaily) { am.setRepeating(AlarmManager.RTC_WAKEUP, triggerTime, AlarmManager.INTERVAL_DAY, sender); } else { am.set(AlarmManager.RTC_WAKEUP, triggerTime, sender); } 

Un detalle adicional explicado en la clase AlarmReceiver es que si ajusta la hora para una hora anterior (por ejemplo, ahora es 11:00 y se establece la alarma para repetir cada día a las 08:00) se disparará de inmediato y, a continuación, en el Al día siguiente en la hora programada. Así que esa clase tiene una cláusula if para evitar eso.

 if (currentHour != alarmHour && currentMin != alarmMin) { /* * If you set a repeating alarm at 11:00 in the morning and it * should trigger every morning at 08:00 o'clock, it will * immediately fire. Eg Android tries to make up for the * 'forgotten' reminder for that day. Therefore we ignore the event * if Android tries to 'catch up'. */ Log.d(LocalNotification.PLUGIN_NAME, "AlarmReceiver, ignoring alarm since it is due"); return; } 

Para establecer la fecha, utilice la date param. En su muestra está utilizando la new Date() que devuelve por defecto la fecha y hora actuales, y su notificación se mostrará diariamente al mismo tiempo. Si desea especificar una hora diferente para su alarma, pase un objeto de fecha con el tiempo deseado!

EDITAR

Una manera fácil de asegurarse de que su código se ejecuta sólo una vez está utilizando localstorage.

 function onDeviceReady(){ ... //note that this will return true if there is anything stored on "isAlarmSet" var isSet = Boolean(window.localStorage.getItem("isAlarmSet")); if (isSet){ //Alarm is not set, so we set it here window.localStorage.setItem("isAlarmSet",1); } } 

Y asegúrese de borrar la variable si alguna vez desarmó su alarma:

 localStorage.removeItem("isAlarmSet); 
  • cómo probar la notificación push en android phonegap?
  • Anclaje inverso de Android sobre usb (no raíz)
  • Cómo utilizar los complementos phonegap en nuestro proyecto android
  • Durante la instalación Cordova (PhoneGap) estoy recibiendo advertencia como "npm WARN motor Cordova-js @ 3. 8.0: wanted: ... "
  • Incorporación Cordova WebView, Receptor no está registrado
  • Establecer permisos de aplicación en Android 6.x (Marschmallow) en la aplicación phonegap / cordova
  • Obtener el nivel actual de la batería usando phonegap o cordova?
  • Eliminar la pantalla de bienvenida en el teléfono para ios y android
  • Cordova no puede construir para Android después de personalizar la configuración
  • ¿Cómo usar Phonegap SoftKeyboard Plugin para Android?
  • Instalación de Phonegap / Cordova 3.1 plugins (código de barras)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.