Muy buenas, les saluda Miguel y aquí les traigo un nuevo artículo.
Índice
Use las nuevas API de Apple para notificaciones y configure su insignia en el ícono de su aplicación
Después de leer este artículo, debería poder agregar rápidamente notificaciones locales a su aplicación. Aprendamos un poco más sobre cada uno de los términos del título.
SwiftUI
“SwiftUI es una forma innovadora y excepcionalmente sencilla de crear interfaces de usuario en todas las plataformas de Apple con el poder de Swift.
Cree interfaces de usuario para cualquier dispositivo Apple utilizando un solo conjunto de herramientas y API «. – Documentación oficial de Apple.
La mejor parte es que puede integrar sus vistas con componentes de los marcos UIKit, AppKit y WatchKit. En resumen, SwiftUI ha simplificado la creación de interfaces de usuario.
Notificaciones locales
“Utilice notificaciones locales para llamar la atención del usuario. Puede mostrar una alerta, reproducir un sonido o marcar el ícono de su aplicación. Por ejemplo, una aplicación en segundo plano podría solicitar al sistema que muestre una alerta cuando finalice una tarea en particular.
Utilice siempre notificaciones locales para transmitir información importante que el usuario desee.
La entrega de notificaciones es manejada por el sistema, en base a una hora o ubicación que usted especifique. Si la entrega de la notificación ocurre cuando su aplicación no se está ejecutando o está en segundo plano, el sistema interactúa con el usuario por usted.
Si su aplicación está en primer plano, el sistema envía la notificación a su aplicación para su manejo «. – Documentación oficial de Apple
Insignias
Cada aplicación de iOS tiene una instancia de UIApplication
, que proporciona control para administrar el icono de su aplicación.
Puede agregar un número en la parte superior derecha del ícono de su aplicación, establecer un ícono alternativo (cambiar el ícono de la aplicación), etc.
Esto es prácticamente todo lo que necesitamos saber para empezar. Profundicemos en las notificaciones.
Notificaciones
Para enviar notificaciones a la pantalla de bloqueo, debemos hacer dos cosas:
- Solicite permiso al usuario para enviar notificaciones.
- Activar notificaciones.
Empezaremos usando el UserNotifications
marco de referencia. Para solicitar permisos de usuario para enviar notificaciones a la pantalla de bloqueo, simplemente puede escribir:
Ahora que estamos autorizados a enviar notificaciones, comencemos a trabajar en el mecanismo de activación.
En primer lugar, lo haremos crear contenido:
let content = UNMutableNotificationContent() content.title = "Daily Notification" content.body = "Daily Notification is Ready" content.sound = UNNotificationSound.default //you can play with it
El siguiente paso es crear un horario. Ahora puede programarlo diariamente, semanalmente, mensualmente o cada cinco minutos. Todos estos parámetros se pueden manipular fácilmente. Por ejemplo:
Envíe una notificación todos los días a las 2 p.m., hora local
var dateComponents = DateComponents() dateComponents.hour = 11 dateComponents.minute = 59 let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
Envía una notificación cada 10 segundos
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
Ahora que tenemos una programación configurada, necesitamos configurar una solicitud para activar notificaciones:
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
Finalmente, agregue la solicitud:
UNUserNotificationCenter.current().add(request)
Una cosa realmente importante a tener en cuenta es que si está probando o ejecutando este fragmento de código cada vez que se carga su aplicación, se le agregarán múltiples solicitudes a UNUserNotificationCenter
.
Como resultado, recibirá múltiples notificaciones una y otra vez. Para evitarlo, es importante que elimine todas las solicitudes de notificación pendientes que ya estén programadas antes de agregar la solicitud. Para hacer eso:
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
¡Eso es! Tienes notificaciones que funcionan para tu aplicación. Se le notificará incluso si cierra la aplicación, bloquea su teléfono o simplemente mueve su aplicación a un segundo plano.
Número de placa
Una vez que las notificaciones funcionan, mostrar un número de placa es pan comido. Asumiré que el usuario de su aplicación ya le ha autorizado a enviar notificaciones. Con eso, puede agregar la siguiente línea en cualquier lugar de su aplicación:
UIApplication.shared.applicationIconBadgeNumber = badgeNumber //Integer
Aquí está el código completo para los buscadores:
func scheduleNotifications() { UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { success, error in if success { print("Success") //To add badgeNumber //UIApplication.shared.applicationIconBadgeNumber = badgeNumber (Integer Value) } else if let error = error { print(error.localizedDescription) } } UNUserNotificationCenter.current().removeAllPendingNotificationRequests() let content = UNMutableNotificationContent() content.title = "Daily Notification" content.body = "Daily Notification is Ready" content.sound = UNNotificationSound.default var dateComponents = DateComponents() dateComponents.hour = 11 dateComponents.minute = 59 let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true) // let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false) let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger) UNUserNotificationCenter.current().add(request) }
¡Ahí tienes! Ahora ha programado notificaciones y ha agregado un número de placa al icono de su aplicación.
Gracias por leer este artículo.
Añadir comentario