Registrazione alle notifiche push
Richiedi l’autorizzazione e ottieni un token del dispositivo.
Registrazione alle notifiche push è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.
Come funziona il push dall'inizio alla fine
Una notifica push viaggia dal vostro server, attraverso Apple Push Notification service (APNs), fino a un dispositivo specifico. Il dispositivo dimostra la propria identità tramite un device token emesso da APNs. Prima di tutto questo, l'utente deve concedere l'autorizzazione e l'app deve registrarsi.
// Flow: App registers -> APNs returns device token ->
// you send token to your server -> server pushes via APNsIl centro notifiche
UNUserNotificationCenter è l'unico oggetto da usare per tutto ciò che riguarda le notifiche locali e remote: richiedere l'autorizzazione, impostare il delegate, pianificare notifiche locali e leggere le impostazioni. Recuperate l'istanza condivisa.
import UserNotifications
let center = UNUserNotificationCenter.current()
// All notification configuration goes through centerRichiedere l'autorizzazione
Dovete chiedere l'autorizzazione all'utente prima di mostrare notifiche. requestAuthorization(options:) presenta la richiesta di sistema e restituisce l'informazione se l'utente ha accettato. Richiedete solo le opzioni necessarie: .alert, .sound, .badge.
import UserNotifications
func requestAuth() async throws -> Bool {
let center = UNUserNotificationCenter.current()
return try await center.requestAuthorization(
options: [.alert, .sound, .badge])
}Registrarsi con APNs
L'autorizzazione è distinta dalla registrazione. Dopo aver ottenuto l'autorizzazione, o contemporaneamente, chiamate registerForRemoteNotifications() sul main actor. In questo modo chiedete ad APNs un device token. La chiamata deve essere eseguita sul thread principale.
import UIKit
@MainActor
func registerForPush() {
UIApplication.shared.registerForRemoteNotifications()
}Ricevere il device token
In caso di successo, il metodo didRegisterForRemoteNotificationsWithDeviceToken del delegate dell'app viene chiamato con un token Data. Convertitelo in una stringa esadecimale e inviatelo al vostro server, che lo userà per indirizzare le notifiche a questo 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
}Gestire gli errori di registrazione
La registrazione può non riuscire, ad esempio per assenza di rete, mancanza del diritto APNs o esecuzione in un ambiente non supportato. Implementate didFailToRegisterForRemoteNotificationsWithError per registrare l'errore e recuperare elegantemente, invece di causare un arresto anomalo.
import UIKit
func application(
_ app: UIApplication,
didFailToRegisterForRemoteNotificationsWithError
error: Error) {
print("Push registration failed:", error)
}I token possono cambiare
Un device token non è permanente. Cambia quando l'utente ripristina un backup, reinstalla l'app o passa a un nuovo dispositivo. Registratevi sempre a ogni avvio e caricate il token più recente, sostituendo quello precedente sul server.
// Best practice: register on each launch,
// always upload the freshly received token,
// never cache a token as permanent.
let rule = "re-register every launch"
_ = ruleControllare le impostazioni correnti
L'utente può revocare l'autorizzazione in un secondo momento dalle Impostazioni. Prima di fare affidamento sulle notifiche, interrogate getNotificationSettings per leggere lo stato corrente dell'autorizzazione e le funzionalità consentite.
import UserNotifications
func currentStatus() async -> UNAuthorizationStatus {
let settings = await UNUserNotificationCenter
.current().notificationSettings()
return settings.authorizationStatus
}Autorizzazione provvisoria
L'opzione .provisional consente alle notifiche di arrivare silenziosamente nel Centro notifiche senza mostrare subito una richiesta di autorizzazione. È un'ottima soluzione per permettere agli utenti di provare le notifiche prima di decidere, lasciando loro la possibilità di mantenerle o disattivarle.
import UserNotifications
func requestQuiet() async throws -> Bool {
try await UNUserNotificationCenter.current()
.requestAuthorization(
options: [.alert, .sound, .provisional])
}La capability necessaria
Niente di tutto questo funziona senza abilitare la capability Push Notifications nel target Xcode, che aggiunge il diritto aps-environment. Per la consegna in background, abilitate anche la capability Background Modes con Remote notifications.
// Xcode target > Signing & Capabilities:
// + Push Notifications
// + Background Modes > Remote notifications
let caps = "entitlements required"
_ = capsCompletare la registrazione
Un flusso di avvio ordinato consiste nel richiedere l'autorizzazione e, se viene concessa, registrarsi per le notifiche remote sul main actor. Il token arriverà quindi nel callback del delegate, pronto per essere caricato.
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()
}
}
}Verifica rapida
Ricordate il rapporto tra autorizzazione e registrazione.
Riepilogo
Ha imparato a registrare l'app per le notifiche push:
- Utilizzi
UNUserNotificationCenterper richiedere l'autorizzazione per.alert/.sound/.badge. - Autorizzazione e registrazione sono operazioni separate; chiami
registerForRemoteNotifications()sul main actor. - Converta il token
Datain esadecimale e lo carichi sul server; effettui nuovamente la registrazione a ogni avvio, perché i token cambiano. - Abiliti la funzionalità Push Notifications e valuti l'autorizzazione
.provisional.
Domande Frequenti
La lezione «Registrazione alle notifiche push» è gratuita?
Sì — il testo completo di «Registrazione alle notifiche push» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.
Cosa imparerò in «Registrazione alle notifiche push»?
Richiedi l’autorizzazione e ottieni un token del dispositivo. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Swift Academy?
Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Registrazione alle notifiche push»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Swift Academy?
Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Registrazione alle notifiche push
- Gestione dei payload delle notifiche
- Attività e aggiornamento in background
- Azioni e categorie delle notifiche