Prima di iOS 9, navigare tra i siti web mobili e le applicazioni native dell'iPhone era un'esperienza imprevedibile e goffa. Gli sviluppatori si sono affidati a protocolli URI personalizzati come instagram:// o mybank://. Questi schemi spesso attivavano avvisi di sistema stridenti che chiedevano "Apri nell'app?", si rompevano completamente se l'app mancava e soffrivano di gravi vulnerabilità di sicurezza. Per risolvere questi difetti fondamentali, Apple ha presentato Universal Links. Ma cos'è un collegamento universale e perché ha trasformato l'architettura del software mobile?

Fondamentalmente, un collegamento universale è un URL Web HTTPS standard e sicuro che instrada senza problemi a controller di visualizzazione specifici all'interno di un'app iOS installata. Se l'app è installata, iOS la avvia immediatamente senza aprire Safari. Se l'app manca, il sistema operativo carica con garbo la pagina web reattiva in Safari senza visualizzare finestre di dialogo di errore. In questo approfondimento tecnico, esaminiamo il funzionamento interno di Apple Universal Links, esploriamo il file di configurazione AASA e spieghiamo perché il moderno routing mobile dipende da questo protocollo.

Comprendere i collegamenti universali è fondamentale per qualsiasi ingegnere iOS o operatore di marketing digitale che cerca di offrire percorsi dei clienti senza attriti da campagne e-mail, piattaforme social e risultati dei motori di ricerca.

Diagramma che mostra come Apple Universal Links instrada le richieste web iOS direttamente nelle applicazioni mobili native
Apple Universal Links verifica le associazioni di dominio per avviare direttamente le app installate fornendo al contempo un fallback senza interruzioni su Safari.

Per comprendere lo scopo dei collegamenti universali, è necessario esaminare le carenze degli schemi URL personalizzati legacy. Gli schemi personalizzati non avevano un registro centrale. Qualsiasi sviluppatore potrebbe creare un'app che richieda lo schema paypal://, intercettando parametri finanziari sensibili destinati a un servizio legittimo, come illustrato nella nostra guida sugli schemi URL per dispositivi mobili. Inoltre, se un utente senza l'app faceva clic sul collegamento di uno schema personalizzato in Safari, iOS mostrava un grave errore di sistema: "Safari non può aprire la pagina perché l'indirizzo non è valido."

Apple ha progettato Universal Links per stabilire tre standard operativi fondamentali:

  • Unicità e sicurezza: poiché i collegamenti universali utilizzano domini web standard (ad esempio, https://dslink.me/path), nessun altro sviluppatore può rivendicare il tuo collegamento a meno che non controlli i tuoi record DNS verificati e i certificati SSL.
  • Ripiego semplice: se un utente iPhone non ha installato la tua app, lo stesso identico URL apre automaticamente il tuo sito web mobile in Safari. Non ci sono collegamenti interrotti e nessun messaggio di errore.
  • Identità unica: gli operatori di marketing e gli sviluppatori devono condividere solo un unico URL che possa servire sia i visitatori web su computer desktop sia gli utenti di app native su dispositivi mobili.

Questo design ha inoltre risolto i problemi per cui un link si apriva in Safari invece che nell'app a causa di trasferimenti di protocollo interrotti.

L'architettura dell'Apple App Site Association (AASA)

La base operativa di Universal Links è una stretta di mano sicura tra il sistema operativo Apple e il tuo server web. Questa stretta di mano è mediata dal file Apple App Site Association (AASA), un documento JSON ospitato su:

https://yourdomain.com/.well-known/apple-app-site-association

Questo file definisce quali ID applicazione sono autorizzati a gestire percorsi URL specifici sul tuo dominio. Ecco un esempio della moderna formattazione AASA JSON:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID1234.com.example.myapp",
        "paths": ["/video/*", "/product/*", "/user/*"],
        "components": [
          {
            "/": "/video/*",
            "comment": "Matches all video detail pages"
          }
        ]
      }
    ]
  }
}

Al file AASA si applicano le principali regole tecniche di hosting:

  • Deve essere servito su HTTPS con un certificato SSL affidabile.
  • Deve restituire un Content-Type di application/json.
  • Deve restituire un codice di stato HTTP 200 OK senza reindirizzamenti da HTTP a HTTPS.
  • Apple memorizza nella cache questo file sulla sua Content Delivery Network (CDN); le modifiche apportate al tuo server potrebbero richiedere del tempo per propagarsi su tutti i dispositivi iOS.

Crea un collegamento diretto intelligente in pochi secondi

Smetti di perdere visitatori mobili a causa di goffe schermate di accesso del browser in-app. Utilizza DSLink per generare collegamenti diretti puliti e in grado di aprire app con analisi in tempo reale.

Open Universal Links vs schemes guide

Comprendere le differenze architettoniche tra collegamenti universali e schemi personalizzati aiuta gli sviluppatori a progettare sistemi di routing multipiattaforma resilienti, come esplorato nel nostro confronto tra collegamenti universali e schemi URL:

Caratteristica Apple Universal Links Schemi URI personalizzati
Formato dell'URL HTTPS standard (https://brand.com) Protocollo proprietario (brand://)
Sicurezza e Proprietà Verificato tramite DNS e AASA JSON Non verificato; incline al dirottamento del piano
Gestione dei fallback Carica con garbo il sito Web in Safari Visualizza l'errore "Safari non può aprire la pagina".
Comportamento tempestivo Apre l'app immediatamente senza istruzioni Spesso si attiva "Apri nell'app?" finestre di dialogo del sistema
Supporto del browser in-app Spesso limitato dalle visualizzazioni web sui social Può essere attivato tramite reindirizzamenti JavaScript

Sebbene i collegamenti universali siano superiori in termini di sicurezza ed esperienza utente, gli schemi personalizzati vengono ancora spesso mantenuti come fallback di backup quando si ha a che fare con browser in-app per social media ostinati, descritti dettagliatamente nella nostra guida sulla navigazione nel browser in-app.

Quando un utente iPhone tocca un collegamento in Apple Mail, Messaggi o in un'app di terze parti, iOS esegue un flusso decisionale preciso:

  1. Ricerca nel database locale: iOS controlla il proprio database indicizzato locale dei domini verificati memorizzati durante l'installazione dell'app.
  2. Valutazione del percorso: se il dominio corrisponde, iOS valuta se il percorso dell'URL corrisponde ai modelli definiti nel documento AASA.
  3. Controllo delle preferenze dell'utente: iOS verifica se l'utente ha precedentemente attivato/disattivato le preferenze di Safari toccando il pulsante breadcrumb del dominio in alto a destra.
  4. Handoff nativo: se tutti i controlli vengono superati, iOS avvia l'app nativa e passa un oggetto NSUserActivity contenente l'URL su cui è stato fatto clic al delegato dell'applicazione o al gestore del ciclo di vita SwiftUI.
  5. Fallback Safari: se l'app manca, il percorso non corrisponde o il dominio non è verificato, iOS avvia Safari e recupera la pagina web normalmente.

Gli sviluppatori possono testare queste transizioni di routing utilizzando il nostro strumento di controllo dei collegamenti interattivo per verificare i codici di risposta e le mappature dei domini.

Per garantire un instradamento impeccabile del collegamento universale attraverso le tue campagne di marketing e l'infrastruttura degli sviluppatori, attieniti a queste best practice testate sul campo:

  • Non racchiudere mai i collegamenti universali nei reindirizzamenti standard: se un collegamento passa attraverso un reindirizzamento 301/302 generico su un dominio non associato, iOS interrompe la catena e instrada il clic a Safari. Scopri di più nella nostra guida ai deep link e agli shortener.
  • Account per browser social in-app: app come Instagram, TikTok e Facebook acquisiscono clic all'interno di visualizzazioni web sandbox. Utilizza collegamenti diretti intelligenti basati su DSLink che rilevano la visualizzazione Web e attivano gli handshake di intenti per fuggire.
  • Supporta percorsi di contenuti universali: assicurati che la tua app mobile nativa e il tuo server web condividano percorsi di routing URL coerenti (ad esempio, /item/123 instrada allo stesso prodotto sia sul web che sull'app).
  • Convalida continuamente la sintassi AASA: utilizza lo strumento di convalida dell'API App Search di Apple per verificare che il file AASA rimanga valido, non danneggiato e formattato correttamente dopo ogni distribuzione del server.

Padroneggiando gli Apple Universal Link e abbinandoli al routing intelligente multipiattaforma, offri esperienze mobili fluide che mantengono i tuoi utenti immersi nel tuo software nativo.

Domande frequenti

Cos'è un collegamento universale in iOS?

Un collegamento universale è un indirizzo Web HTTPS standard che Apple iOS riconosce come associato a un'app installata, consentendo al sistema operativo di aprire direttamente l'app nativa invece di caricare Safari.

In che modo Apple verifica che un'app possieda un dominio?

Apple verifica la proprietà tramite il file JSON apple-app-site-association (AASA) ospitato sul dominio web. iOS scarica questo file al momento dell'installazione dell'app per verificare l'ID dell'app e le corrispondenze del percorso.

Cosa succede se un utente fa clic su un collegamento universale ma non ha installato l'app?

Se l'app non è installata, iOS carica senza problemi la pagina Web di destinazione in Safari senza mostrare messaggi di errore, finestre di dialogo di avviso o schermate rotte.

È possibile utilizzare i collegamenti universali sui dispositivi Android?

No. I collegamenti universali sono uno standard iOS e iPadOS specifico di Apple. Android utilizza una tecnologia equivalente denominata Android App Links, che si basa sulla verifica dei collegamenti alle risorse digitali.