0Pricing
Swift Academy · Lección

Registrarse para recibir notificaciones push

Solicite permiso y obtenga un token del dispositivo.

Registrarse para recibir notificaciones push es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Cómo funciona una notificación push de principio a fin

Una notificación push viaja desde su servidor, a través del servicio de notificaciones push de Apple (APNs), hasta un dispositivo específico. El dispositivo demuestra su identidad mediante un device token emitido por APNs. Antes de todo esto, el usuario debe conceder permiso y la app debe registrarse.

// Flow: App registers -> APNs returns device token ->
// you send token to your server -> server pushes via APNs

El Notification Center

UNUserNotificationCenter es el objeto único que se utiliza para todo lo relacionado con notificaciones locales y remotas: solicitar autorización, establecer el delegado, programar notificaciones locales y consultar la configuración. Obtenga la instancia compartida.

import UserNotifications
let center = UNUserNotificationCenter.current()
// All notification configuration goes through center

Solicitar autorización

Debe pedir permiso al usuario antes de mostrar notificaciones. requestAuthorization(options:) presenta la solicitud del sistema y devuelve si el usuario aceptó. Solicite únicamente las opciones que necesite: .alert, .sound y .badge.

import UserNotifications
func requestAuth() async throws -> Bool {
    let center = UNUserNotificationCenter.current()
    return try await center.requestAuthorization(
        options: [.alert, .sound, .badge])
}

Registrarse en APNs

La autorización es independiente del registro. Después de obtener permiso, o al mismo tiempo, llame a registerForRemoteNotifications() en el actor principal. Esto solicita un device token a APNs. Debe ejecutarse en el hilo principal.

import UIKit
@MainActor
func registerForPush() {
    UIApplication.shared.registerForRemoteNotifications()
}

Recibir el device token

Cuando la operación tiene éxito, el método didRegisterForRemoteNotificationsWithDeviceToken del delegado de la app se ejecuta con un token Data. Conviértalo en una cadena hexadecimal y envíela a su servidor, que la utilizará para dirigirse a este dispositivo.

import UIKit
func application(
    _ app: UIApplication,
    didRegisterForRemoteNotificationsWithDeviceToken
    deviceToken: Data) {
    let token = deviceToken.map {
        String(format: "%02x", $0) }.joined()
    print("APNs token:", token)
    // send token to your backend
}

Gestionar los errores de registro

El registro puede fallar por falta de red, por no disponer de la autorización de APNs o por ejecutarse en un entorno no compatible. Implemente didFailToRegisterForRemoteNotificationsWithError para registrar el error y recuperarse correctamente en lugar de provocar un bloqueo.

import UIKit
func application(
    _ app: UIApplication,
    didFailToRegisterForRemoteNotificationsWithError
    error: Error) {
    print("Push registration failed:", error)
}

Los tokens pueden cambiar

Un device token no es permanente. Cambia cuando el usuario restaura una copia de seguridad, reinstala la app o cambia de dispositivo. Regístrese siempre en cada lanzamiento y cargue el token más reciente, reemplazando el anterior en el servidor.

// Best practice: register on each launch,
// always upload the freshly received token,
// never cache a token as permanent.
let rule = "re-register every launch"
_ = rule

Comprobar la configuración actual

El usuario puede revocar el permiso más adelante en Ajustes. Antes de depender de las notificaciones, consulte getNotificationSettings para leer el estado de autorización actual y las funciones permitidas.

import UserNotifications
func currentStatus() async -> UNAuthorizationStatus {
    let settings = await UNUserNotificationCenter
        .current().notificationSettings()
    return settings.authorizationStatus
}

Autorización provisional

La opción .provisional permite que las notificaciones lleguen silenciosamente al Notification Center sin mostrar una solicitud inicial. Es una buena forma de permitir que los usuarios prueben las notificaciones antes de decidir si desean conservarlas o desactivarlas.

import UserNotifications
func requestQuiet() async throws -> Bool {
    try await UNUserNotificationCenter.current()
        .requestAuthorization(
            options: [.alert, .sound, .provisional])
}

La capacidad necesaria

Nada de esto funciona sin activar la capacidad Push Notifications en el destino de Xcode, lo que añade la autorización aps-environment. Para la entrega en segundo plano, también debe activar la capacidad Background Modes con Remote notifications.

// Xcode target > Signing & Capabilities:
//   + Push Notifications
//   + Background Modes > Remote notifications
let caps = "entitlements required"
_ = caps

Integrar el registro

Un flujo de inicio limpio consiste en solicitar autorización y, si se concede, registrarse para recibir notificaciones remotas en el actor principal. El token llegará entonces a la devolución de llamada del delegado para cargarlo.

import UIKit
import UserNotifications
func setupPush() async {
    let center = UNUserNotificationCenter.current()
    let granted = (try? await center.requestAuthorization(
        options: [.alert, .sound, .badge])) ?? false
    if granted {
        await MainActor.run {
            UIApplication.shared.registerForRemoteNotifications()
        }
    }
}

Comprobación rápida

Recuerde la relación entre autorización y registro.

Resumen

Ha aprendido a registrarse para recibir notificaciones push:

  • Use UNUserNotificationCenter para solicitar autorización para .alert/.sound/.badge.
  • La autorización y el registro son procesos independientes; llame a registerForRemoteNotifications() en el actor principal.
  • Convierta el token Data a hexadecimal y súbalo; vuelva a registrarse en cada lanzamiento porque los tokens cambian.
  • Active la capacidad Push Notifications y considere la autorización .provisional.

Preguntas frecuentes

¿La lección «Registrarse para recibir notificaciones push» es gratis?

Sí — el texto completo de «Registrarse para recibir notificaciones push» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Registrarse para recibir notificaciones push»?

Solicite permiso y obtenga un token del dispositivo. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Registrarse para recibir notificaciones push»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Registrarse para recibir notificaciones push
  2. Gestión de cargas de notificaciones
  3. Tareas y actualización en segundo plano
  4. Acciones y categorías de notificaciones
← Volver a Swift Academy