Rich Notification: cosa sono, contenuti multimediali e creazione di notifiche

Autore: IT Sectr Pubblicato: 2026-03-20 Tempo di lettura: 8 min

Rich Notification è un formato avanzato di notifiche push iOS che include allegati multimediali, pulsanti interattivi e interfacce personalizzate per migliorare l'esperienza utente. A differenza delle notifiche di testo standard, Rich Notification può visualizzare immagini, video e audio direttamente nel banner o nella schermata di blocco. Secondo Apple Developer Documentation, 2026, UNNotificationAttachment supporta fino a 10 file in una singola notifica e li ridimensiona automaticamente per una visualizzazione ottimale su tutti i dispositivi.

Punti chiave

  • Allegati multimediali — Rich Notification supporta immagini (JPEG, PNG, GIF), video (MP4, MOV fino a 30 secondi) e audio (MP3, AAC, WAV) tramite UNNotificationAttachment.
  • Interattività — pulsanti e input di testo vengono aggiunti tramite UNNotificationAction e UNTextInputNotificationAction, collegati alle categorie di notifica.
  • Service Extension — un componente obbligatorio per il caricamento dei media: scarica l'allegato dall'URL del payload e lo aggiunge al contenuto.
  • Content Extension — crea un'interfaccia di notifica completamente personalizzata con UI propria, animazioni e gestione dei gesti.
  • Limiti — dimensione massima dell'allegato 10 MB, limite di memoria dell'estensione 50 MB, tempo di elaborazione fino a 30 secondi.

Cosa sono le Rich Notification

Rich Notification è una notifica push iOS che contiene non solo testo, ma anche allegati multimediali, elementi interattivi e un'interfaccia personalizzata. Il termine “rich” (ricco) riflette la capacità di includere immagini, video, audio, pulsanti di azione e input di testo in una notifica, trasformando un semplice avviso in un elemento interattivo completo.

Evoluzione delle notifiche in iOS

Apple ha introdotto il supporto per Rich Notification in iOS 10 insieme al framework UserNotifications. Prima di ciò, le notifiche push potevano contenere solo testo, suono e un badge. iOS 10 ha introdotto UNNotificationServiceExtension e UNNotificationContentExtension, che hanno aperto la possibilità di modificare il contenuto e creare interfacce personalizzate. Le versioni successive hanno aggiunto il supporto per SwiftUI in Content Extension, GIF animate e un migliore ridimensionamento dei media.

Vantaggi rispetto alle notifiche standard

Rich Notification aumenta significativamente il coinvolgimento degli utenti. Studi Apple mostrano che le notifiche con immagini ricevono 30–40% in più di interazioni rispetto a quelle solo di testo. Un'immagine del prodotto, un'anteprima video o un pulsante di risposta rapida consentono all'utente di prendere una decisione direttamente dalla notifica senza aprire l'app. Questo accorcia il percorso verso l'azione desiderata e migliora l'esperienza utente.

Tipi di allegati multimediali e loro formati

UNNotificationAttachment supporta tre categorie di media: immagini, video e audio. Ogni tipo ha le proprie limitazioni di formato, dimensione e durata. Il sistema ridimensiona automaticamente le immagini per adattarle alle dimensioni della notifica e limita la durata del video a 30 secondi per ottimizzare le prestazioni.

Tipo di mediaFormati supportatiDimensione massima
ImmaginiJPEG, PNG, GIF, TIFF10 MB per file
VideoMPEG, MP4, MOV10 MB, fino a 30 secondi
AudioMP3, AAC, WAV, CAF10 MB

Immagini e GIF animate

Le immagini vengono automaticamente ritagliate e ridimensionate dal sistema per la visualizzazione in viste di notifica compatte ed estese. Le GIF animate sono supportate a partire da iOS 12 e vengono riprodotte automaticamente alla visualizzazione della notifica. La dimensione dell'immagine consigliata è 1024x1024 pixel, che garantisce una visualizzazione nitida su tutti i dispositivi, incluso iPad con schermo grande.

Allegati video e audio

Il video in Rich Notification viene riprodotto senza audio per impostazione predefinita — l'utente può attivare l'audio tramite il pulsante del lettore. La durata massima del video è di 30 secondi, dopo i quali la riproduzione si arresta. Gli allegati audio possono essere utilizzati per messaggi vocali o anteprime sonore e vengono riprodotti toccando la notifica in vista estesa.

Pulsanti interattivi e azioni

Le azioni interattive consentono all'utente di eseguire operazioni direttamente dalla notifica senza aprire l'app. Le azioni vengono registrate tramite UNNotificationCategory e UNNotificationAction all'avvio dell'app. Ogni azione può essere in background (senza aprire l'app) o in primo piano (apre l'app per completare l'operazione).

UNNotificationAction e UNTextInputNotificationAction

UNNotificationAction rappresenta un pulsante con un titolo e modificatori opzionali come requiresAuthentication (richiede Face ID/Touch ID) o destructive (evidenziato in rosso). UNTextInputNotificationAction estende questa funzionalità aggiungendo un campo di input di testo — ideale per risposte rapide a messaggi o commenti. Le azioni vengono visualizzate premendo a lungo sulla notifica o scorrendo verso il basso.

Registrazione di categorie e azioni

Le categorie di notifica collegano il tipo di contenuto a un insieme di azioni disponibili. Il processo di registrazione viene eseguito in AppDelegate all'avvio dell'app tramite UNUserNotificationCenter.current().setNotificationCategories. La categoria viene specificata sul server nel campo category del payload JSON e il sistema applica automaticamente l'insieme di azioni corrispondente alla notifica.

Gestione dei tocchi sulle azioni

Quando l'utente tocca un pulsante o invia testo, il sistema chiama il delegato UNUserNotificationCenterDelegate con il metodo didReceive response. UNNotificationResponse contiene l'identificatore dell'azione e il testo inserito (per UNTextInputNotificationAction). Sulla base di queste informazioni, l'app esegue la logica di business corrispondente: invia un messaggio, conferma un'azione o apre una schermata specifica.

Implementazione di Rich Notification in Swift

Esaminiamo l'intero ciclo di creazione di Rich Notification: dalla registrazione delle categorie in AppDelegate all'elaborazione in Service Extension e alla visualizzazione. AppDelegate registra la categoria con i pulsanti, il server invia una notifica con un URL dell'immagine, Service Extension scarica il contenuto multimediale e Content Extension mostra un'interfaccia personalizzata con pulsanti.

swift
// AppDelegate — registrazione di categorie e azioni
func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions:
    [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {

    let replyAction = UNTextInputNotificationAction(
        identifier: "reply",
        title: "Rispondi",
        options: [.authenticationRequired])

    let likeAction = UNNotificationAction(
        identifier: "like",
        title: "Mi piace",
        options: [])

    let category = UNNotificationCategory(
        identifier: "social_post",
        actions: [replyAction, likeAction],
        intentIdentifiers: [],
        options: [])

    UNUserNotificationCenter.current()
        .setNotificationCategories([category])
    return true
}

Service Extension per caricare immagini

Dopo aver ricevuto una notifica push con la categoria “social_post” e un URL dell'immagine in un campo personalizzato, viene attivata Service Extension. L'estensione scarica l'immagine dalla rete, crea un UNNotificationAttachment con un identificatore univoco e lo aggiunge al contenuto. È importante verificare la dimensione del file scaricato — se supera 10 MB, l'allegato non verrà creato e il sistema mostrerà la notifica senza contenuti multimediali.

swift
class NotificationService: UNNotificationServiceExtension {

    override func didReceive(
        _ request: UNNotificationRequest,
        withContentHandler contentHandler:
        @escaping (UNNotificationContent) -> Void
    ) {
        let content = (request.content.mutableCopy()
            as! UNMutableNotificationContent)
        guard let urlString = content.userInfo["media-url"]
            as? String,
            let url = URL(string: urlString)
        else { contentHandler(request.content); return }

        URLSession.shared.downloadTask(with: url) {
            location, _, _ in
            guard let location = location else {
                contentHandler(content); return }
            let attachment = try! UNNotificationAttachment(
                identifier: "media", url: location,
                options: [UNNotificationAttachmentOptionsTypeHintKey:
                    "jpg"])
            content.attachments = [attachment]
            contentHandler(content)
        }.resume()
    }
}

Test di Rich Notification

Per testare Rich Notification senza server, utilizza il simulatore iOS e invia push tramite terminale con xcrun simctl push. Nel payload, assicurati di specificare mutable-content: 1 per attivare Service Extension e la categoria per visualizzare le azioni. Il comando invia un push da un file JSON direttamente al simulatore selezionato, consentendo iterazioni rapide senza configurare infrastruttura server.

Content Extension e interfaccia personalizzata

UNNotificationContentExtension consente di sostituire completamente l'interfaccia di notifica standard con una vista UIKit o SwiftUI personalizzata. L'estensione viene attivata quando l'utente espande la notifica (force touch o scorrimento verso il basso) e può contenere pulsanti, cursori, animazioni e qualsiasi altro componente dell'interfaccia. La dimensione dell'interfaccia si adatta al contenuto utilizzando Auto Layout.

Storyboard e SwiftUI in Content Extension

Content Extension si basa su uno storyboard con un controller di vista che eredita da UIViewController. SwiftUI View viene integrata tramite UIHostingController a partire da iOS 16, consentendo approcci moderni alla costruzione dell'interfaccia. Per la compatibilità con iOS 14–15, si consiglia di utilizzare UIKit con file xib. L'interfaccia riceve il contenuto modificato da Service Extension tramite UNNotificationContent.

Gestione delle azioni utente

Content Extension implementa il protocollo UNNotificationContentExtension con il metodo didReceive response. UNNotificationResponse contiene informazioni sul pulsante premuto o sul testo inserito. L'estensione può aggiornare l'interfaccia senza chiudere la notifica o chiamare il completion handler per chiuderla. Ciò consente di creare scenari di interazione rapida, come un “mi piace” con feedback visivo direttamente nella notifica.

Raccomandazioni di design

Apple raccomanda di mantenere Content Extension conciso e funzionale, evitando elementi eccessivi. L'altezza massima della notifica espansa è di circa 400 punti, dopo i quali il contenuto scorre. Utilizza caratteri e spaziature del sistema per coerenza con altre notifiche. Testa su diverse dimensioni dello schermo per assicurarti che l'interfaccia venga visualizzata correttamente sia su iPhone che su iPad.

Domande frequenti

Qual è la dimensione massima dell'immagine in Rich Notification?

La dimensione massima di un singolo allegato multimediale è di 10 MB. Se il limite viene superato, UNNotificationAttachment non viene creato e la notifica viene visualizzata senza contenuti multimediali. Si consiglia di ottimizzare le immagini a 1–3 MB per un caricamento rapido in Service Extension.

Le Rich Notification funzionano su tutti i modelli di iPhone?

Le Rich Notification sono supportate su tutti i dispositivi con iOS 10 e versioni successive, inclusi iPhone 5s e modelli più recenti. Content Extension con interfaccia personalizzata è disponibile da iOS 12. SwiftUI in Content Extension — da iOS 16. Su versioni precedenti, la notifica viene visualizzata in forma standard.

Si può usare GIF in Rich Notification?

Sì, le GIF animate sono supportate a partire da iOS 12. La GIF viene caricata tramite UNNotificationAttachment come un'immagine normale e viene riprodotta automaticamente alla visualizzazione della notifica. La dimensione della GIF è limitata agli stessi 10 MB degli altri formati.

Quanti pulsanti si possono aggiungere a una notifica?

Massimo 4 azioni per notifica durante la registrazione di una categoria. Se ne vengono specificate di più, il sistema mostra le prime 4 e ignora le restanti. Si consiglia di utilizzare 2–3 pulsanti per un'esperienza utente ottimale — troppe opzioni sovraccaricano l'interfaccia.

Serve un server per inviare Rich Notification?

Sì, il server deve inviare push tramite APNS (servizio di notifiche push Apple) con un payload JSON contenente l'URL del file multimediale in un campo personalizzato e il flag mutable-content: 1. Il server specifica anche la categoria per attivare Content Extension e le azioni.

Riepilogo

  • Rich Notification — una notifica push iOS con allegati multimediali, pulsanti interattivi e interfaccia personalizzata che aumenta il coinvolgimento degli utenti.
  • Media supportati — immagini JPEG/PNG/GIF, video MP4/MOV (fino a 30 s), audio MP3/AAC/WAV con limite di 10 MB per file.
  • Service Extension scarica i media dall'URL del payload e aggiunge UNNotificationAttachment al contenuto della notifica.
  • Azioni interattive — fino a 4 pulsanti per categoria, inclusa l'input di testo tramite UNTextInputNotificationAction.
  • Content Extension sostituisce l'interfaccia standard con una vista UIKit/SwiftUI personalizzata con elementi arbitrari.
  • Content Extension implementa il protocollo UNNotificationContentExtension con il metodo didReceive per gestire i tocchi e aggiornare l'interfaccia in tempo reale.
  • Rich Notification richiede configurazione a tutti i livelli: server (APNS), Service Extension (caricamento media) e AppDelegate (registrazione categorie).

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche