Liens universels sur iOS vs. liens profonds (schémas D'URL))

comme je le lis, iOS 9 introduit des liens universels. Dans la section" Support Universal Links "de Apple App Search Programming Guide , il est dit que ce n'est pas exactement comme lien profond avec les schémas D'URL, mais je ne suis pas totalement clair sur ce sujet:

  • Quelle est en fait la différence(s) entre le lien universel et les schémas D'URL? Est-ce qu'un lien universel est seulement pour les hyperliens dans les sites Web, et le courrier ou les Messages apps?
  • les liens universels remplacent-ils les schémas D'URL?
  • les liens universels sont - ils un type de lien profond?
29
demandé sur Josh Caswell 2016-02-20 14:33:12

4 réponses

liens universels est la capacité de l'iOS d'envoyer une demande d'url web à une application donnée, au lieu de les ouvrir dans le navigateur.

URL-schemes est une capacité des applications à ouvrir dans un État donné, décrit par l'url, et géré en code par le développeur.

dites que vous avez une application appelée "Cool App", et que vous avez enregistré le schéma d'url "coolapp". Et votre application ont différents domaines comme "gadgets Nice "et"Nice stuff". Maintenant, vous pouvez ouvrir votre application avec en lien le lien coolapp://nice-gadgets . Pour faire l'application ouverte sur la section de gadget nice, vous devez mettre en œuvre la méthode application(_:openURL:options:) , et dans ce découvrir l'url demandée, et faire l'application ouvrir le contrôleur de vue demandé.

en même temps vous avez un site Web appelé www.coolapp.com . Lors de la navigation à l'aide d'un appareil iOS, et vous tombez sur un lien vers votre site - dire www.coolapp.com/nice-gadgets , et l'ouverture du lien, il s'ouvre dans le navigateur. En permettant universal links il ouvrira l'application à la place en appelant la méthode application(_:continueUserActivity:restorationHandler:) donnée à l'url comme paramètre. De là, vous pouvez utiliser la même logique à partir de la gestion du schéma d'url, pour ouvrir l'application dans l'état demandé.

les liens universels remplaceront-ils les schémas d'url? J'en doute, mais ils vont se faire des compliments.

les liens universels sont-ils des liens profonds? Non, mais ils peuvent initier le processus d'utilisation de liens à l'intérieur d'une application.

34
répondu micmdk 2016-02-20 12:04:03

TL, DR:

Quelle est en fait la différence(s) entre Universal Link et les schémas D'URL? Est-ce qu'un lien universel est seulement pour les hyperliens dans les sites Web, et les applications de messagerie ou de Messages?

un lien universel est une URL spécifique à Apple, basée sur OS, qui relie un site web à un URI Scheme & Route spécifique à une application. Il n'est pas disponible dans toutes les applications, comme l'application doit prendre en charge le comportement. Y est une bonne liste de où/comment fonctionne actuellement UL ( ici ).

Il ya des tonnes de problèmes avec UL's ainsi que je souligne à la toute fin. Voir lire ci-dessous.

les liens universels remplacent-ils les schémas D'URL?

Pas de. Ils sont un remplacement forcé pour les plans et les routes URI sur iOS Safari. Vous devez Et devez toujours prendre en charge le schéma URI et les routes de votre application depuis Android et iOS Chrome utilise toujours cette technologie, comme le font toutes les grandes classes de vendeurs de lien de l'attribution par courriel.

les liens universels sont-ils un type de lien profond?

Oui et non. Les liens universels en eux - mêmes ne sont pas des liens profonds universels-ils ne peuvent pas passer par le processus d'installation par exemple. Mais, lorsque l'utilisateur a l'application, ils peuvent deeplink. Mieux vaut penser à tous les liens en termes de ce qu'ils peuvent et ne peuvent pas faire, plutôt que classifiez les URLs en "deeplinks" et "not deeplinks."

de nombreux liens montrent le comportement à deeplink selon que l'Utilisateur a l'application et le contexte (navigateur, application, OS, Version OS, etc).) Changer le cadre de pensée.

Suivi Du Lien Universel

tout au long du document ci-dessous, je présente tous les différents aspects des liens universels. Il est important d'appeler que continueUserActivity reportera L'URL de référence à partir d'un lien universel, de sorte que vous pouvez utiliser ceci pour attribuer ouvre.

parce qu'un UL n'est pas un lien normal, si vous avez des redirections, cela le cassera. De même, si vous désactivez les redirections, alors n'importe quel site web click server que vous avez ne sera jamais frappé. Ceci est pour une discussion différente, mais important de noter.

beaucoup d'informations utiles que j'ai organisé ci-dessous sur les liens universels si vous êtes intéressé.

Schémas URI

la plupart des gens connaissent les programmes URI. Un URI est un indicateur de ressources universelles ( link ). Les URI peuvent être attribués à des applications mobiles. Taper dans une URI, comme airbnb: / / tentera de localiser la ressource de l'application Airbnb sur le périphérique.

avant que des liens universels ou des liens D'application existent (c'est-à-dire avant iOS 9.3/Android 6.0), il faudrait utiliser un "URI schéma personnalisé" et l'itinéraire sous la forme de airbnb://d/listing/530250 lien profond à un utilisateur de contenu spécifique à une application mobile (dans ce cas une liste). Cependant, ce n'était pas sécurisé et qu'il n'gérer le cas où un utilisateur n'avez pas l'application installée (il n'y avait pas de secours). La façon dont la plupart des partenaires d'attribution (Appsflyer, Kochava, Button, Yozio, branche, etc.) fonctionneraient est qu'ils fourniraient un lien qui a géré cela.

lorsque l'utilisateur visite la page de cette URL, il y aurait du javascript cela définirait une minuterie et ensuite essayer de lancer le schéma URI à partir du navigateur avec un javascript simple:

window.location.href(...)

si l'application ne s'est pas ouverte avant l'expiration de la minuterie, alors le vendeur pourrait supposer que le téléphone ne contenait pas l'application, et donc à la place, certains javascript se déclencherait pour ouvrir l'URL iTunes ou Android à la place. Ce mécanisme reposait sur le blocage de javascript dans le navigateur.

Dans iOS 9.3, Apple a supprimé le blocage de javascript dans Safari ( lien ). Le résultat final est que chaque fois que vous essayiez d'ouvrir une application avec un schéma URI dans Safari, vous verriez un grand message d'erreur qui disait, "Ne peut pas ouvrir la Page."Cela a été une expérience utilisateur terrible et a conduit à l'application du nouveau système D'Apple, Apple Universal Links.

Safari "Cannot Open Page" triggered by older style URI Scheme redirects. In iOS 8 and below all attribution and deeplinking tech worked by setting a timer, trying to launch the URI scheme & pathway, then if a timer expired before the app launched, redirecting the user to the App Store. The advent of iOS 9.3 killed non-blocking javascript, and hence there was no way for this method to work anymore. Chrome & Android still support this style of attribution and routing.

Apple Universal Liens & Android App Liens sont essentiellement des Url de sites web (par exemple, https://www.airbnb.com/rooms/530250 ) qui sont destinés à orienter les utilisateurs vers l'emplacement optimal sur le web ou l'application. Ils ont été conçus pour amener les utilisateurs à mobile web si l'utilisateur n'a pas l'application, mais prendre l'utilisateur au contenu exact dans l'application si elles le font. Sur un appareil mobile, si l'utilisateur suit un lien universel et fait installer notre application, il peut être dirigé vers l'application, sinon le système retombera et fera atterrir le visiteur sur notre site web mobile (à quelques exceptions près -- voir ci-dessous).

Pour un lien vraiment universel, il exige que la fonctionnalité liée soit activée sur le web, iOS et Android et que toutes les applications partagent le même chemin de ressources.

Apple Universal Liens & Android App Liens

Apple Universal Links (iOS) et Android App Links (Android) sont essentiellement le même concept, mais sont souvent interchangés, ou confondus avec d'autres mécanismes de routage. Il est important d'être explicite lorsque vous parlez de ces concepts, sinon vous risquez de confondre ou de confondre différentes technologies qui fonctionnent très différemment.

en particulier, les liens universels Apple sont une norme D'Apple qui est déployé sur le système d'exploitation iPhone (OS), qui permet à un utilisateur de taper sur un lien et être livré immédiatement à l'application s'ils l'ont. Les liens Apple Universal N'ont pas de redirections. Il s'agit d'une configuration spéciale avec un certain degré de complexité technique. Lorsque l'utilisateur tape le lien, un appel roundtrip server est made to Apple et L'OS ouvre l'application immédiatement sans jamais ouvrir le navigateur ou charger l'URL. Plus à ce sujet ci-dessous.

Android App Links est le système de liens équivalent qui est mis en place sur Android.

les liens universels commencent par héberger un" Apple App Site Association File " (Aasa) pour chacun de vos domaines.

il est important de noter que presque chaque entreprise Aasa est hébergé à leur domaine principal suivi par "/apple-app-site de l'association"

quelques exemples:

https://www.jet.com/apple-app-site-association https://www.pinterest.com/apple-app-site-association

si vous cliquez sur ces URLs, il téléchargera L'AASA de la société. Un exemple D'AASA est à droite. Certaines choses notables inclus dans un AASA: AppID pour toutes les applications où des liens universels peuvent être appliqués. Dans nous et beaucoup d'autres AASA vous verrez setup pour la production et les versions de test de l'application de sorte que les liens fonctionneront à travers toutes les versions pour les tests. L'AppID est structuré comme le préfixe App, Suivi du Bundle ID. Habituellement chaque version de test de l'application a un préfixe différent, mais L'ID de faisceau reste cohérent.

exemple... {App Prefix}.{Bundle ID }

Chemins: ce sont les voies qui permettra d'ouvrir l'application immédiatement si l'utilisateur a elle. L'application recevra L'URL de référence et pourra analyser la bonne voie pour relier l'utilisateur au contenu-après.

la plupart des fournisseurs d'attribution, comme Branch ou Appsflyer, peuvent également héberger une AASA pour vous dans certains cas (exemple: L'Aasa de Branch pour Airbnb est hébergé sur le domaine personnalisé https://abnb.me/apple-app-site-association ).

ces fichiers whitelist et la liste noire efficacement les URLs à la carte, ou non carte, de dans l'app. Tout comme dans le cas D'une AASA appartenant à une entreprise, pour chaque domaine, le fournisseur spécifie les applications et les chemins D'URL tels que:

5LL7P8E8RA.com.airbnb.app
"/rooms/*"
"/wishlists/*"
"/invite"
"NOT /rooms/*/building-rules"

lorsque les utilisateurs installent ou mettent à jour notre application, iOS récupère les fichiers AASA pour tous les domaines énumérés dans les droits de notre application pour s'assurer que nos sites Web permettent à notre application d'ouvrir des URLs en leur nom.

problèmes connus avec les liens universels

Universal Les liens fonctionnent bien dans la plupart des cas, mais ceux-ci peuvent facilement et, par inadvertance, être désactivés! Si cela se produit, l'Utilisateur sera toujours redirigé vers L'URL du site jusqu'à ce qu'il mette à jour son application ou réinitialise ce que nous appelons son "fichier de droits" ( lien ).

si un utilisateur tape sur le "airbnb.com" ou " abnb.me ' lien dans le haut à droite de notre application, L'OS dirigera l'utilisateur vers le site web, mais il dirigera également de manière permanente tout futur lien universel vers le site web mobile pour les liens avec ce domaine!

cela brise effectivement la fonctionnalité des liens universels D'Apple pour l'utilisateur. Ceci n'est pas traçable pour le moment et la seule façon de réinitialiser est d'appuyer longtemps sur L'URL et de cliquer sur "Ouvrir dans "Airbnb"" (pas intuitif) ou d'appuyer sur le bouton "Ouvrir" sur la bannière Apple Universal Links (bannière fantôme) qui a été décrit plus tôt dans ce document.

Apple Universal Links Banner

ces chemins AASA sont également utilisés pour déterminer quand Afficher, ou ne pas afficher, la bannière "Universal Links" du système iOS."

C'est un sujet particulièrement brûlant qui surgit souvent dans les conversations et qui mérite d'être discuté.

lorsque vous activez les liens Apple Universal sur un domaine particulier, Apple injectera une bannière D'application système sur le navigateur Safari. Cela signifie qu'en plus de n'importe quelles bannières ou interludes web nous display, Apple va également forcer un non-customizable, Non-trackable Universal Links banner, qui s'affiche au sommet de Safari pour les utilisateurs qui ont l'application et qui voient une URL dans Safari who's path est dans l'aasa.

Apple injects a "Universal Links Banner" on your website when you setup Universal Links. There is no attribution or tracking.

nous n'avons aucun contrôle sur l'apparence de cette bannière. Nous pouvons seulement déterminer si elle doit être visible sur une page basée sur L'AASA. Nous aussi ont actuellement aucun moyen d'identifier si ou lorsqu'un utilisateur appuie sur le bouton "Ouvrir" (c'est-à-dire sans attribution).

résumé des attributs de la bannière Apple Universal Links:

  • s'affiche seulement si l'Utilisateur a l'application.
  • PAS le même que l'Apple Smart App Banner
  • S'affiche seulement sur le navigateur iOS Safari.
  • non personnalisable, sauf que, vous pouvez personnaliser le texte du titre et de la description dans cette bannière avec le La iTunesMetadata.plist Contenu ( lien ).
  • Aucune attribution ou de suivi.
29
répondu ahay 2017-08-06 15:19:41

le lien Universel de remplacer l'URL/URI régimes?

dans le monde idéal D'Apple, Oui ! Parce que depuis iOS 9.2, Apple ne supporte plus les programmes URI pour les liens profonds, les développeurs doivent implémenter des liens universels afin de créer des liens profonds correctement sur iOS.


le lien Universel est un type de liens profonds?

parce Qu'Apple force à développer des liens universels utilisateurs afin de lien profond. Si, Universal Links est un type de lien profond par Apple. Mais si vous voyez Facebook a duré sdk, ils ont mis en œuvre propre WebView afin de prendre en charge les liens profonds dans iOS 9.0 +. Donc, pour les liens universels D'Apple mieux que les liens profonds.

13
répondu Vineet Choudhary 2017-05-18 18:52:32

c'est un exemple de lien universel: " http://sample-universal-link.demoapp.com "

il est unique , et sur être exploité il sera ouvrir l'Application, sans passer par Safari(si l'Application est installée) ou va ouvrir le site sur Safari( si l'Application n'est pas installée)

il s'agit D'un exemple de schéma D'URL: "demoapp" (demoapp: / / params)

ce peut ne pas être unique , et en étant tappé il ouvrira L'application si elle est installée . Si l'Application est non installé , il ne fera rien pour . Une ou plusieurs applications peuvent avoir le même schéma D'URL.

mise en œuvre ( exigences ) pour Universal Link & URL Scheme sont très différents, donc je doute fortement que Universal links remplace URL Régime.

lien universel est l'un des moyens de mettre en œuvre lien profond.

8
répondu Arpit Dongre 2017-03-20 09:57:42