es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Posponer una notificación repetida: ¿existe una mejor manera?

Tengo una aplicación en la que especificas recibir un recordatorio a una hora determinada todos los días para hacer X y crear el hábito. Luego, en la aplicación, marcas que has hecho X hoy.

El problema que tengo es que si el usuario marca que ha hecho X antes de que se active la notificación, todavía recibe una notificación a la hora indicada. Lo que me gustaría que suceda es que el recordatorio se salte hoy, pero luego continúe desde mañana en adelante a la hora indicada.

Mi idea para solucionar esto es establecer un recordatorio para cada día, durante 14 días seguidos, es decir, 14 recordatorios. Entonces, si has hecho X hoy, simplemente elimino el recordatorio para hoy. Y luego, cada día cuando el usuario abre la aplicación, cancelo todos los recordatorios y establezco 14 nuevos recordatorios.

Pero debe haber una manera mejor que establecer 14 recordatorios. Pero al menos hace 2 años, parece que no era compatible.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Swift, puedes utilizar el marco de UNUserNotificationCenter para manejar las notificaciones locales en tu aplicación. Una solución para resolver el problema de las notificaciones omitidas es utilizar el método UNNotificationRequest con un UNCalendarNotificationTrigger que establece una notificación recurrente diaria en el tiempo especificado.

    Para manejar el caso en el que el usuario marca la tarea como completada antes de la hora programada de la notificación, puedes cancelar la notificación pendiente para el día actual utilizando el método removePendingNotificationRequests de UNUserNotificationCenter.

    Además, puedes actualizar el mensaje de la notificación para mostrar que la tarea ya ha sido completada para el día utilizando el método UNMutableNotificationContent.

    En general, este enfoque proporciona una solución más eficiente y flexible en comparación con la configuración de múltiples recordatorios para cada día.

Comments are closed.