Les liens universels sur iOS offrent un moyen transparent de diriger les utilisateurs d'un site Web vers un contenu spécifique au sein de votre application. Cependant, il est essentiel de comprendre une limitation importante concernant les redirections : les liens universels ne fonctionnent généralement pas avec les redirections automatiques en raison des mesures de sécurité mises en place par Apple. Si un lien universel est cliqué puis automatiquement redirigé, iOS ouvrira généralement la page Web de secours dans Safari au lieu de lancer votre application. Cela signifie que si votre intention est qu'un lien redirigé ouvre votre application, cela échouera probablement et l'utilisateur sera redirigé vers la page Web dans son navigateur. Malgré cette limitation, la configuration des liens universels est essentielle pour une bonne expérience utilisateur. Voici comment les mettre en œuvre :
1. Activez les domaines associés dans votre projet Xcode
Tout d'abord, vous devez indiquer à votre application iOS qu'elle prend en charge les liens universels. * Ouvrez votre projet dans Xcode. * Sélectionnez la cible de votre application. * Accédez à l'onglet « Signing & Capabilities » (Signature et capacités). * Cliquez sur le bouton « + Capability » (Capacité) et sélectionnez « Associated Domains » (Domaines associés). * Ajoutez votre ou vos domaines avec le préfixe applinks: (par exemple, applinks:votredomaine.com).
2. Créez et hébergez le fichier apple-app-site-association (AASA)
Ce fichier JSON indique à iOS quelles URL de votre site web doivent s'ouvrir dans votre application. * Créer le fichier : Nommez-le apple-app-site-association (sans extension de fichier). * Contenu : Le fichier doit contenir du JSON qui spécifie l'ID de bundle de votre application et les chemins qu'elle peut gérer.
```json { "applinks": { "apps": [], "details": [
{ « appID » : « YOUR_TEAM_ID.YOUR_BUNDLE_ID »,
« paths » : [ « /path/to/content/* », « /another/path/* », « * » ]
} ] } }
``` * Remplacer `YOUR_TEAM_ID` par votre Apple Developer Team ID et `YOUR_BUNDLE_ID` avec l' identifiant de bundle de votre application.
* Le tableau `paths` spécifie les URL que votre application peut traiter. Vous pouvez utiliser des caractères génériques (par exemple, `*`) pour correspondre à plusieurs chemins. - Hébergez le fichier : téléchargez ce fichier à la racine de votre serveur web ou dans un répertoire
.well-known(par exemple,https://yourdomain.com/.well-known/apple-app-site-association).- Il doit être accessible via HTTPS et sans aucune redirection.
- Assurez-vous que le type de contenu est
application/json.
3. Gérer les liens universels dans votre application
Votre application doit répondre lorsqu'elle est lancée via un lien universel.
* Implémentez la méthode application(_:continue:restorationHandler:) dans votre fichier AppDelegate.swift.
* Dans cette méthode, vous pouvez extraire l'URL et ses paramètres pour diriger l'utilisateur vers le contenu approprié dans votre application.
```swift
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler : @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { guard userActivity.activityType == NSUserActivityTypeBrowsingWeb,
let incomingURL = userActivity.webpageURL else { return false }
// Gérer l' URL entrante, e.g., parse its path and query parameters
imprimer("URL entrante : \(incomingURL)") // Exemple: Naviguer vers une spécifique écran basé sur l' URL
// handleUniversalLink(url: incomingURL)
return true } ``` Considérations relatives aux redirections et aux solutions de contournement
- Clics directs uniquement : les liens universels sont conçus pour fonctionner lorsqu'un utilisateur clique directement dessus.
- Automatisation du marketing et suivi : si vous utilisez des outils d'automatisation du marketing ou si vous avez besoin de mesurer les clics impliquant des redirections, les utilisateurs peuvent être redirigés vers l'URL de secours Web au lieu de votre application. Dans ce cas, envisagez d'utiliser un fournisseur de liens profonds qui propose des solutions de mesure d'attribution et s'intègre directement aux fournisseurs de services de messagerie électronique.
- Flèche de navigation Safari : iOS peut afficher une flèche de navigation dans Safari qui, si elle est cliquée, peut diriger l'utilisateur vers le site web associé, même si l'application est installée. Si ce site web redirige ensuite vers l'App Store, cela peut créer une expérience utilisateur confuse.
- Mécanisme de secours : si votre application n'est pas installée, le lien universel ouvrira l'URL spécifiée dans Safari. Vous pouvez mettre en place un mécanisme de secours sur votre site web afin de rediriger les utilisateurs vers l'App Store si l'application n'est pas détectée.
Tester les liens universels
- Installez votre application sur un appareil iOS physique ou un simulateur.
- Envoyez-vous le lien universel par e-mail ou hébergez-le sur une page Web.
- Appuyez sur le lien à partir du client de messagerie ou du navigateur Web de l'appareil.
- Vérifiez que le lien ouvre votre application directement sur le contenu souhaité. Si l'application n'est pas installée, vérifiez qu'elle redirige correctement vers l'URL de secours.
- Sachez que le réseau de diffusion de contenu (CDN) d'Apple peut mettre un certain temps (jusqu'à 24 heures) pour récupérer votre fichier AASA.