wake-up-neo.net

Universelle Links unter iOS vs. Deep Links (URL-Schemata)

Während ich lese, hat iOS 9 Universal Links eingeführt. Im Abschnitt "Support Universal Links" in Apples App Search Programming Guide heißt es, dass dies nicht genau wie eine tiefe Verknüpfung mit URL-Schemata ist, aber ich bin nicht ganz klar über dieses Thema:

  • Was ist eigentlich der Unterschied zwischen Universal Link und den URL-Schemata? Ist es so, dass ein universeller Link nur für Hyperlinks auf Websites und die Mail- oder Nachrichten-Apps gilt?
  • Ersetzen universelle Links URL-Schemata?
  • Sind Universal Links eine Art Deep Link?
34
AppsDev

Unter Universal Links versteht man die Fähigkeit des iOS, Web-URL-Anforderungen an eine bestimmte App zu senden, anstatt sie im Browser zu öffnen.

URL-Schemata sind Apps, die in einem bestimmten Zustand geöffnet werden können, der durch die URL beschrieben wird und vom Entwickler im Code behandelt wird.

Angenommen, Sie haben eine App namens "Cool App" und Sie haben das URL-Schema "coolapp" registriert. Und Ihre App hat verschiedene Bereiche wie "Schöne Gadgets" und "Schöne Sachen". Jetzt können Sie Ihre App mit dem Link coolapp://Nice-gadgets Öffnen. Um die App im Nice-Gadget-Bereich zu öffnen, müssen Sie die application(_:openURL:options:) -Methode implementieren, die angeforderte URL ermitteln und die App den angeforderten Ansichtscontroller öffnen lassen.

Gleichzeitig haben Sie eine Website mit dem Namen www.coolapp.com. Wenn Sie mit einem iOS-Gerät surfen und Sie auf einen Link zu Ihrer Site stoßen - sagen Sie www.coolapp.com/Nice-gadgets, Und der Link wird im Browser geöffnet. Wenn Sie universelle Links aktivieren, wird die App stattdessen durch Aufrufen der application(_:continueUserActivity:restorationHandler:) -Methode mit der angegebenen URL als Parameter geöffnet. Von hier aus können Sie die gleiche Logik aus der URL-Schema-Behandlung verwenden, um die App im angeforderten Zustand zu öffnen.

Werden universelle Links URL-Schemata ersetzen? Ich bezweifle es, aber sie werden sich auf nette Weise gegenseitig ein Kompliment machen.

Sind universelle Links Deep Links? Nein, aber sie können den Prozess der Verwendung von Deep Links innerhalb einer App einleiten.

42
micmdk

TL, DR:

Was ist eigentlich der Unterschied zwischen Universal Link und den URL-Schemata? Ist es so, dass ein universeller Link nur für Hyperlinks auf Websites und für die Mail- oder Nachrichten-Apps gilt?

Ein Universal Link ist eine Apple) spezifische, betriebssystembasierte URL, die eine Website-URL mit einem appspezifischen URI-Schema und einer Route verknüpft. Er ist nicht in allen Apps verfügbar, da die App dies unterstützen muss Es gibt eine gute Liste, wo und wie ULs derzeit funktionieren ( hier ).

Es gibt auch Unmengen von Problemen mit ULs, die ich ganz am Ende skizziere. Siehe weiter unten.

Ersetzen universelle Links URL-Schemata?

Nein. Sie sind ein erzwungener Ersatz für URI-Schemata und -Routen unter iOS Safari. Sie müssen und sollten das URI-Schema und die Routen Ihrer App weiterhin unterstützen, da Android und iOS Chrome) diese Technologie weiterhin verwenden, ebenso wie jede wichtige Klasse von Link-Anbietern, die Zuschreibungen vornehmen per E-Mail.

Sind Universal Links eine Art Deep Link?

Ja und nein. Universelle Links an sich sind keine universellen Deeplinks - sie können beispielsweise nicht durch den Installationsprozess geleitet werden. Aber wenn der Benutzer die App hat, kann er den Link entfernen. Denken Sie besser über alle Links nach, was sie können und was nicht, als klassifizieren Sie URLs in "Deeplinks" und "Nicht-Deeplinks".

Viele Links zeigen das Verhalten der Deeplink-Funktion, abhängig davon, ob der Benutzer die App und den Kontext (Browser, Anwendung, Betriebssystem, Betriebssystemversion usw.) hat. Ändern Sie den Denkrahmen.

Verfolgen von universellen Links

Im folgenden Dokument werden die verschiedenen Aspekte von Universal Links beschrieben. Es ist wichtig, darauf hinzuweisen, dass continueUserActivity die verweisende URL von einem universellen Link ausgibt, damit Sie diese zum Öffnen von Attributen verwenden können.

Da eine UL keine normale Verbindung ist, wird sie unterbrochen, wenn Sie Weiterleitungen haben. Wenn Sie Weiterleitungen deaktivieren, wird auch der Website-Klickserver, den Sie haben, niemals getroffen. Dies ist für eine andere Diskussion, aber wichtig zu beachten.

Viele hilfreiche Informationen, die ich unten bei Universal Links zusammengestellt habe, wenn Sie interessiert sind.

URI-Schemata

Die meisten Menschen sind mit URI-Schemata vertraut. Ein URI ist ein Universal Resource Indicator ( link ). URIs können mobilen Anwendungen zugewiesen werden. Wenn Sie einen URI wie airbnb: // eingeben, wird versucht, die App-Ressource Airbnb auf dem Gerät zu finden.

Bevor es Universal Links oder App Links gab (d. H. Vor iOS 9.3/Android 6.0), musste ein „benutzerdefiniertes URI-Schema“ und die Route in Form von airbnb://d/listing/530250, um einen Benutzer mit bestimmten Inhalten in einer mobilen App (in diesem Fall einer Auflistung) zu verknüpfen. Dies war jedoch weder sicher noch behandelte es den Fall, dass ein Benutzer die App nicht installiert hatte (es gab keinen Fallback). Die meisten Zuweisungspartner (Appsflyer, Kochava, Button, Yozio, Branch usw.) würden so arbeiten, dass sie einen Link bereitstellen, der dies erledigt.

Wenn der Benutzer die Seite dieser URL besucht, gibt es ein Javascript, das einen Timer setzt, und versucht dann, das URI-Schema über den Browser mit einem einfachen Javascript zu starten:

window.location.href(...)

Wenn die App nicht vor Ablauf des Timers geöffnet wurde, könnte der Anbieter davon ausgehen, dass das Telefon die App nicht enthält. Stattdessen wird Javascript ausgelöst, um iTunes oder die Android URL) zu öffnen Dieser Mechanismus beruhte auf der Blockierung von Javascript im Browser.

In iOS 9.3 wurde Apple hat das blockierende Javascript in Safari entfernt ( Link ). Das Endergebnis ist, dass bei jedem Versuch, eine App mit einem URI-Schema in Safari zu öffnen, die große Fehlermeldung "Seite kann nicht geöffnet werden" angezeigt wird. Dies war eine schreckliche Benutzererfahrung und führte zur Durchsetzung von Apples neuem System , 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 Links & Android App Links sind im Wesentlichen Web-URLs (z. B. https://www.airbnb.com/rooms/530250), die Benutzer an den optimalen Ort im Web oder in der App leiten sollen. Sie sollten Benutzer zum mobilen Web führen, wenn der Benutzer nicht über die App verfügt, aber den Benutzer zu den genauen Inhalten in der App führen, wenn dies der Fall ist. Wenn der Benutzer auf einem mobilen Gerät einem universellen Link folgt und unsere App installiert hat, wird er möglicherweise zur App weitergeleitet. Andernfalls greift das System zurück und landet den Besucher auf unserer mobilen Website (mit wenigen Ausnahmen - siehe unten).

Damit eine Verknüpfung wirklich universell ist, muss die verknüpfte Funktion für das Web, iOS und Android und für alle Apps aktiviert sein, damit sie denselben Ressourcenpfad verwenden.

Apple Universal Links & Android App Links

Apple Universal Links (iOS) und Android App Links (Android)) sind im Wesentlichen dasselbe Konzept, werden jedoch häufig ausgetauscht oder mit anderen Routing-Mechanismen verwechselt Konzepte, sonst riskieren Sie die Verwirrung oder Verwechslung verschiedener Technologien, die sehr unterschiedlich funktionieren.

Insbesondere Apple Universal Links sind ein Standard aus Apple, der auf dem iPhone-Betriebssystem (OS) bereitgestellt wird und einem Benutzer ermöglicht, auf einen Link zu tippen und zu sein Wird sofort an die App geliefert, falls vorhanden. Apple Universal Links haben keine Weiterleitungen. Dies ist ein spezielles System-Setup mit einem gewissen Grad an technischer Komplexität. Wenn der Benutzer auf den Link tippt, wird ein Roundtrip-Server verwendet Der Aufruf erfolgt an Apple und das Betriebssystem öffnet die App sofort, ohne jemals den Browser zu öffnen oder die URL zu laden. Weitere Informationen dazu finden Sie weiter unten.

Android App Links ist das entsprechende Verknüpfungssystem, das unter Android eingerichtet wird.

Universal Links hosten zunächst für jede Ihrer Domains eine „Apple App Site Association File“ (AASA).

Es ist wichtig zu beachten, dass die AASA fast aller Unternehmen auf ihrer Hauptdomäne gehostet wird, gefolgt von "/ Apple-App-Site-Association".

Einige Beispiele:

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

Wenn Sie auf diese URLs klicken, wird die AASA des Unternehmens heruntergeladen. Ein AASA-Beispiel finden Sie auf der rechten Seite. Einige bemerkenswerte Dinge in einer AASA: AppID für alle Apps, in denen Universal Links angewendet werden können. In unseren und vielen anderen AASAs sehen Sie die Einrichtung für die Produktions- und Testversionen der App, sodass die Links für alle Testversionen funktionieren. Die AppID ist als App-Präfix strukturiert, gefolgt von der Bundle-ID. Normalerweise hat jede Testversion der App ein anderes Präfix, die Bundle-ID bleibt jedoch konsistent.

Beispiel ... {App-Präfix}. {Bundle-ID}

Pfade: Dies sind die Pfade, die die App sofort öffnen, wenn der Benutzer sie hat. Die App erhält die verweisende URL und kann den richtigen Pfad analysieren, um den Benutzer von den Inhalten zu trennen.

Die meisten Anbieter von Attributen, wie Branch oder Appsflyer, können in bestimmten Fällen auch eine AASA für Sie hosten (Beispiel: Die AASA für Airbnb von Branch wird in der benutzerdefinierten Domäne gehostet https: //abnb.me/Apple-app-site- Assoziation ).

Diese Dateien listen die URLs, denen die App zugeordnet werden soll, oder nicht, effektiv auf und setzen sie auf eine schwarze Liste. Genau wie bei einer firmeneigenen AASA gibt der Anbieter für jede Domain die App-IDs und die URL-Pfade an, z.

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

Wenn Benutzer unsere App installieren oder aktualisieren, ruft iOS die AASA-Dateien für alle Domänen ab, die in den Berechtigungen unserer App aufgeführt sind, um sicherzustellen, dass unsere Websites es unserer App ermöglichen, URLs in ihrem Namen zu öffnen.

Bekannte Probleme mit Universal Links

Universal Links funktionieren in den meisten Fällen hervorragend, können jedoch leicht und versehentlich deaktiviert werden! In diesem Fall wird der Benutzer immer zur URL der Website weitergeleitet, bis er seine App aktualisiert oder die so genannte "Berechtigungsdatei" zurücksetzt ( Link ).

Wenn ein Benutzer auf den Link "airbnb.com" oder "abnb.me" oben rechts in unserer App tippt, leitet das Betriebssystem den Benutzer auf die Website weiter, leitet aber auch jeden zukünftigen Universal Link dauerhaft an das Mobiltelefon weiter Website für Links zu dieser Domain!

Dies unterbricht effektiv die Funktionalität von Apple Universal Links für den Benutzer. Dies ist derzeit nicht verfolgbar und die einzige Möglichkeit zum Zurücksetzen besteht darin, die URL lange zu drücken und auf "In" Airbnb "öffnen" zu klicken. (nicht intuitiv) oder tippen Sie auf die Schaltfläche "Öffnen" auf dem oben in diesem Dokument beschriebenen Apple Universal Links Banner (Phantom Banner).

Apple Universal Links Banner

Diese AASA-Pfade werden auch verwendet, um zu bestimmen, wann das "Universal Links Banner" des iOS-Systems angezeigt oder nicht angezeigt werden soll.

Dies ist ein besonders heißes Thema, das in Gesprächen häufig auftaucht und das es wert ist, erörtert zu werden.

Wenn Sie Apple Universal Links in einer bestimmten Domain aktivieren, wird Apple ein System-App-Banner in den Safari-Browser einfügen. Dies bedeutet, dass zusätzlich zu den Bannern oder Von uns angezeigte Web-Interstitials Apple erzwingen auch ein nicht anpassbares, nicht verfolgbares Universal Links-Banner, das für Benutzer, die die App haben und eine URL in Safari anzeigen, oben in Safari angezeigt wird Wer ist der Weg ist in der AASA.

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

Wir haben keine Kontrolle darüber, wie dieses Banner aussieht. Wir können nur anhand der AASA bestimmen, ob sie auf einer Seite sichtbar sein soll. Derzeit können wir auch nicht feststellen, ob oder wann ein Benutzer auf die Schaltfläche "ÖFFNEN" tippt (dh keine Zuordnung).

Zusammenfassung der Apple Universal Links Banner Attribute:

  • Wird NUR angezeigt, wenn der Benutzer die App hat.
  • NICHT dasselbe wie das Apple Smart App Banner
  • NUR im iOS-Safari-Browser angezeigt.
  • Nicht anpassbar, außer Sie können den Text des Titels und der Beschreibung in diesem Banner mit dem Inhalt der iTunesMetadata.plist anpassen ( Link ).
  • Keine Zuordnung oder Nachverfolgung.
38
ahay

Universelle Links ersetzen URL/URI-Schemata?

In Apples idealer Welt ist YES !


Universal Links ist eine Art von Deep Links?

Weil Apple Entwickler Benutzer Universal Links zum Deep-Link zwingen. Universal Links ist also eine Art Deep-Link von Apple. Aber wenn Sie sehen, dass Facebook das SDK durchhält, haben sie ein eigenes WebView zur Unterstützung der Bestellung implementiert Deep Linking in iOS 9.0 +. Also, für Apple Universal Links besser als Deep Linking.

13

Dies ist ein Beispiel für einen universellen Link: " http://sample-universal-link.demoapp.com "

Es ist einzigartig , und wenn es angetippt wird , wird entweder die App geöffnet, ohne Safari zu durchlaufen (falls die App installiert ist) oder öffnet die Website auf Safari (falls die App nicht installiert ist)

Dies ist ein Beispiel für ein URL-Schema: "demoapp" (demoapp: // params)

Dies ist möglicherweise nicht eindeutig , und wenn Sie darauf tippen , wird die App geöffnet, falls sie installiert ist . Wenn die App nicht installiert ist , wird nichts unternommen . Eine oder mehrere Apps haben möglicherweise dasselbe URL-Schema.

Die Implementierung ( Anforderungen) für das universelle Link- und URL-Schema ist sehr unterschiedlich. Daher bezweifle ich stark, dass universelle Links das URL-Schema ersetzen.

Universal Link ist eine Möglichkeit, Deep Linking zu implementieren.

8
Arpit Dongre