
Facebook’s F8 Agenda: Deep linking for mobile apps - satjot
http://blog.tapfame.com/post/79010200283/facebooks-f8-agenda-deep-linking-for-mobile-apps
======
alaskamiller
From 2004:

<a href="aim:GoIm?screenname=myscreenname&message=hello">x</a>

~~~
robmil
mailto: is the same principle and has been around since the 90s.

------
allantyoung
@satjot - can "they" detect what's installed on your smartphone? If yes, I can
see how deep-linking would be a great feature for apps that have high value
repeat purchases.

~~~
satjot
@allantyoung there are a few ways Facebook can compile this data : (1) They
could make calls to app url schemes that are publicly known (i.e.
[http://handleopenurl.com/](http://handleopenurl.com/)) to check for a
response (2) Facebook will become the largest data set of app url schemes as
more apps register their url schema with Facebook when enabling deep-linking
(3) Facebook bought Parse, and over 100,000 apps use Parse and many of those
apps use FB connect, so Facebook knows which apps those users have

~~~
cheald
On Android, though, app developers just have to register open intents for
their urls, and Android takes care of the rest. No special schemes necessary,
and falls back to the browser if the user doesn't have an app installed to
handle it. What exactly is wrong with that setup that necessitates a whole new
set of schemas that will result in urls that can only be handled if you
already have the app installed?

------
yahelc
Is there any functional deeplinking comparable to:

    
    
        twitter://post?message=hello%world
    

in the current Facebook app? Lots of older posts indicate
fb://publish/?text=helloworld once worked, but it doesn't seem to any longer.

------
rahimnathwani
Related standard:
[http://mobiledeeplinking.org/](http://mobiledeeplinking.org/)

------
Domenic_S
Why is this called "deep" linking? What makes it deep?

~~~
drawkbox
It is the reinvention of hyperlinking 'deep' into alternate views rather than
just the native app's main page. I use it but the reason why it hasn't taken
hold is largely because it isn't standardized across platforms.

Here's a routable handler that tries to standardize it:
[https://github.com/usepropeller/routable-
android](https://github.com/usepropeller/routable-android) and
[https://github.com/usepropeller/routable-
ios](https://github.com/usepropeller/routable-ios)

