
App Links: Link Anywhere on Mobile - _pius
http://applinks.org/
======
untog
Hooray, now it can join URX[1] and DeepLink[2] in this "making links actually
do things" space. Of course, being the free, open source option I do hope this
prevails, but it amazes me the lengths we've had to go (URX even raised $12m)
in trying to get the iPhone to do what Android has been able to do for years.
Parsing URLs really shouldn't be this difficult.

[1] [http://urx.com/](http://urx.com/)

[2] [http://www.deeplink.me/](http://www.deeplink.me/)

~~~
jmilinovich
Similar to the proposed methods of Google and Twitter, Applinks is Facebook's
proposal for how developers expose their deeplinks to the web via meta tag
markup.

In addition to their meta tags, Facebook also released an API that lets
developers send Facebook a request with a URL to receive a response for the
equivalent deeplink. This solution works best for deeper native integrations
and those who want to go through Facebook to get this mapping. Fortunately,
URX omnilinks already support Applink tags and don't require any code-level
integration for developers to start linking to other apps.

Basically, the tags are open source (good), much like URX's working proposal
[1], and the implementation of using the tags goes through Facebook. Facebook
requires a native integration and does get around browser flashes, but is much
more difficult to integrate than omnilinks, where you simply put urx.io/ in
front of any weblink.

[1] [http://urx.com/documentation](http://urx.com/documentation)

~~~
csmajorfive
"implementation of using the tags goes through Facebook"

No, it doesn't. You can use the SDKs without any dependency on Facebook.

Omnilinks are cool. I hope we can all work together to make mobile better.

~~~
jmilinovich
To be more specific, I was talking about "Facebook App Link index" which seems
to be the way for a developer to find a deeplink based on a given weblink
while going through Facebook.

Look forward to discussing further and seeing how we can work together here to
connect the webs.

~~~
filmgirlcw
Well, there is nothing to prevent someone from creating a Facebook-free app
index. And I'm sure that will exist soon.

I think omnilinks and applinks are both cool. Anything that can get us closer
to a pseudo-standard for intra-app linking is a win.

~~~
jmilinovich
Agreed, and do think that will exist in the near-term as well. It's so
exciting to see all the movement in this space.. it's a huge win in the name
of user experience and I think that things will continue to move quickly here.

------
yincrash
"mobile" being iPhone? Because android apps can handle their own (http[s])
urls just fine.

~~~
mingfli
I think Android definitely has a stronger story than iOS, but Android also
allows any app to handle any url, so multiple apps can attempt to handle a
domain (like facebook.com), whereas app links allows you to direct the link to
a single app (or a suite of apps).

"mobile" also means more than just iOS and Android, although they're the two
dominant platforms today.

~~~
yincrash
what happens if two iOS apps try to register the same scheme?

~~~
baddox
I believe that the behavior is undefined, but I haven't checked since iOS 7
came out. The docs used to say it was undefined, and I think people reported
that it would pick the app that was most recently installed.

------
dstaley
Can anyone explain how this differs (if at all) from the deep linking support
built into Android? [http://developer.android.com/training/app-indexing/deep-
link...](http://developer.android.com/training/app-indexing/deep-linking.html)

~~~
featherless
From a quick glance at the docs
([http://applinks.org/documentation/](http://applinks.org/documentation/)) it
appears that this standard depends on the web to define app links
independently from the apps themselves. Basic flow would look something like:

\- user submits content with a link to
[http://imgur.com/vxKOi](http://imgur.com/vxKOi) to your social app of the
month

\- another user taps that link in the app

\- the app would look at that url's header and pull out any applink
information.

\- using the downloaded links, the app would try to open the imgur app with
the provided url

\- the imgur would then open, showing the content for the url that was tapped.

Note that none of the above mentions being on an iPhone, thus the cross-
platform nature of the solution.

------
programminggeek
Can someone explain how and why I would truly want to link out to another app
on someone's phone? I get the whole android intents thing and having a "share"
button and letting other services handle some of those things, but in what
cases is it super beneficial to link to another app and leave your app?

The only thing I can think of are things like PDF viewers or maybe cross
linking your own apps?

~~~
drewcrawford
Sure. So let's say you run Skype. Currently the way skype works is to add
somebody, they have to find out their Skype name, tell it to you, you receive
it, they type it into a search box, pick from a list, then wait for the other
person to confirm. That is, shall we say, terrible.

Deep app links would let you just send somebody skype://user/jim89 or better
yet skype://invites/9384jr83 which provides a massively better on boarding
experience.

Not only that, but I am working on an app where you don't even have a
username, so there's nothing to type in a search box. A URL-based scheme like
this one allows you to eliminate an entire field and the whole "create an
account" step.

------
buro9
From one perspective this looks killer: It looks like it supports a long-time
pain of being able to direct someone to download an app and then open a
specific location within the app. You could now have a QR code that when
scanned from a shop didn't just download the right app for the phone, but the
applink would also describe what to open once the app is installed.

But from another perspective this looks like a nightmare: It entrenches apps
as the universal interface, and not the browser, by keeping people within the
world of apps.

I can see why advertising companies want this, the browser is a battleground
for control of the presentation layer (adverts) and apps help protect that (by
locking out adblock add-ons, etc).

~~~
onmydesk
"It looks like it supports a long-time pain of being able to direct someone to
download an app and then open a specific location within the app. You could
now have a QR code that when scanned from a shop didn't just download the
right app for the phone, but the applink would also describe what to open once
the app is installed."

Is that what it actually does? If I have an iTunes url to my app can I imbed
an argument to send to the app once it runs after being downloaded? I would
have thought a standard requires implementation by apple for that to be the
case.

Ive read the fb post, saw the f8 section and watched their video and I still
don't know what it does. Maybe Im dim.

~~~
benjaminfox
These links don't preserve intent for users who don't already have the app,
due to the App Store's and Google Play's problems with attributing app
downloads.

My company, Tapstream, fixes this by pairing our attribution platform with a
deep link redirector - users who have the app already are deep linked, and
users who don't have the app are sent to the App Store.

Then, once the new user installs the app, the app receives a callback with the
user's source and any query string parameters on the original link. Docs:
[https://tapstream.com/developer/deferred-deep-
links/](https://tapstream.com/developer/deferred-deep-links/)

------
ary
This is good. I'm left wondering about a couple of thing.

\- Would a parallel standard be useful that allows the rel="" and type=""
attributes of <a> to signal the kind of app (for mobile and desktop) that
could better handle the resource than the browser? I've been enamored with
this idea of general cross-linking between browsers and native apps for quite
a while, but it seems like a pipe dream.

\- Is it even possible to have general data types that multiple apps can
handle (and what would the selection UI look like for that)? Think lat/long
for mapping apps, addresses (for a variety of apps), events
(time/data/address), etc.

I should add that the referring app UI for iOS is clever, great job whoever
thought of that.

------
tehwebguy
Didn't 2 other companies just raise millions to do this?

~~~
ryandawidjan
[http://www.urx.com/](http://www.urx.com/) would be one.

techcrunch.com/2014/04/28/mobile-deep-linking-startup-urx-raises-12-million-
launches-universal-link-service-called-omnilinks/

~~~
CmonDev
Yes, but it failed to support Windows Phone.

~~~
jerluc
@CmonDev We [URX] definitely have looked into support for Windows Phone
deeplinking, but found it difficult to find any examples of websites using
Windows Store meta markup properly, which would be a prerequisite for us to
support such apps. Can you point us in the direction of any good examples?

------
jefftchan
How does this work in the case of namespace collision? Will we have squatters
on the uri schemes?

~~~
xmlblog
The details are OS-specific, but the user is prompted to choose which app to
open the link with on iOS.

------
yawz
Here's a link to Facebook's blog post:
[https://developers.facebook.com/blog/post/2014/04/30/app-
lin...](https://developers.facebook.com/blog/post/2014/04/30/app-links/)

------
sosuke
I want to see the App Links for the apps in their service, the Pinterest and
Spotify links would be nice to have access too. Pinterest is notorious for
being closed off, only recently opening open an API. Will the list be open?

------
JonoW
One problem I'd like to see solved across platforms is the case when you click
an app deep-link for an app you don't have installed. Currently we're having
to do some crazy hacks so that a single link goes to the relevant app store if
the app is not installed, or opens the intended app if it is. Solutions for
iOS and Android are also currently quite different, and it's a PITA. Do
AppLinks solve this problem?

~~~
xmlblog
AppLinks is supposed to enable you to prompt the user to install the app if
they don't already have it, which is the reason why the spec calls for
developers to embed the al:ios:app_store_id, for instance.

From the docs
([http://applinks.org/documentation/#uxguidelinesrecommendatio...](http://applinks.org/documentation/#uxguidelinesrecommendations)):

"You may choose to take a user to the native app store when the app is not
installed or display the name of the app based upon the App Link metadata for
a given link."

