Pregunta

Me estoy sumergiendo en el desarrollo de iOS y estoy construyendo mi propia aplicación de despertador para familiarizarme con la plataforma y el SDK. Una de las API que estoy aprendiendo actualmente es la API de notificaciones locales, que supongo que es la misma API que Apple usa para implementar sus alarmas en su aplicación de reloj.

Lo que no entiendo es cómo implementan su funcionalidad de "repetición". Según tengo entendido, las notificaciones locales le permiten presentar al usuario un cuadro de alerta que tiene como máximo dos botones cuando su aplicación no se ejecuta en primer plano, un botón para descartar la alerta y un botón para llevar al usuario a su aplicación . Sin embargo, en la aplicación del reloj de Apple, parece que al usuario se le presenta un cuadro de alerta con dos botones, un botón para descartar la alarma y un botón para "dormir" y reprogramar la alarma sin iniciar la aplicación del reloj. Mis preguntas son ...

  1. Cuando el usuario hace clic en el botón "Snooze", ¿cómo cree que Apple está reprogramando la notificación local para la alarma sin iniciar la aplicación del reloj? ¿Crees que están usando sus propias API privadas que eluden las limitaciones de las notificaciones locales que solo permiten dos opciones? ¿O crees que están lanzando la aplicación Clock para reprogramar la notificación local, simplemente no muestran la aplicación que se inicia y renuncian?

  2. La documentación dice que la propiedad "AlertAction" de la notificación local es el texto que se mostrará en el botón derecho del cuadro de alerta y la barra deslizante de la pantalla de bloqueo. Sin embargo, en la aplicación Reloj de Apple, el texto de "Setooze" es el botón izquierdo en el cuadro de alerta, ni es el texto de la barra deslizante. ¿Por qué está esto al revés?

¡Muchas gracias de antemano por tus pensamientos!

¿Fue útil?

Solución

La API de notificación local no tiene ningún mecanismo para hacer lo que desea. La aplicación de despertador casi seguramente no usa ninguna de la infraestructura para notificaciones locales, les es anterior. Incluso si se tiene en cuenta algunas de las infraestructuras proporcionadas por notificaciones locales, ciertamente no utiliza las API públicas.

Debería expediente Un error que solicita que se agregue esta funcionalidad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top