Hi!

Well, I think adding an API to query directly whether an application is
installed could be a privacy risk. This is why Microsoft added this API to
obscure this information to the web page and just call either the success
or failure callback.

In Citrix, we use this API on IE 11 / Win 8 to e.g. launch our programs
(if installed) or provide the user with a download (if the user declined
the launching / program is not installed). Currently, we use a plugin on
Firefox, Chrome, Safari for the same functionality. For environments where
users cannot typically install programs (Android, iOS, Windows RT, etc.),
we provide a link to the App Store / Play Store / Windows Store instead of
providing a direct download.

Made-up example for launching SSH:
(this works on IE 11 / Win 8 if you use navigator.msLaunchUri):
navigator.launchUri(“ssh://user@host”,
    function successCallback() {
        //show some UI to show success
    },
    function failureCallback() {
        //display UI to explain how to install an SSH client or re-try
    });

One of the main advantages over a plain <a href=“ssh://user@host”... is
that if no “ssh://“ scheme handler is installed and the user clicks that
link, there is reliable specified behavior (the failureCallback). Using
currently existing means, that experience is pretty bad and very different
in each browser (e.g. Chrome just ignores the click (after firing unload
events), Firefox asks the user which app to launch (without showing a
default app), Safari/OSX asks to search the app store, etc.). The web page
does not know whether it worked and cannot help the user. For a good user
experience, the page should know whether launching the app worked or not
and be allowed to handle the UI - instead of the browser showing something
random.

Sidenote: Chrome on Android has this functionality using intents, using
the following style:
intent://urltolaunch#Intent;scheme=schemetolaunch;package=packagetoinstall;
end, which either launches schemetolaunch://urltolaunch to redirects to
the play store to install packagetoinstall.

Cheers,
Kosta


On 4/1/14, 7:01 PM, "Ehsan Akhgari" <ehsan.akhg...@gmail.com> wrote:

>Hi Konstantin,
>
>So, is the main use case here determining whether the application is
>installed?  What URL schemes do you use for this?  What kind of UX do
>you present to the user if the application is not installed?
>
>Also, how does this picture fit into environments where the application
>is not even provided (hypothetically speaking, let's say on Android)?
>
>Thanks!
>Ehsan
>
>On 2014-04-01, 11:30 AM, Konstantin Welke wrote:
>> Hi!
>>
>> As you want to get rid of all plugins (NPAPI), you say: "If there are
>> plugin features which are not available in the web platform, we
>>encourage
>> developers to post their use cases to mozilla.dev.platform project
>>list”.
>> https://developer.mozilla.org/en-US/Add-ons/Plugins
>>
>> We have such a feature: We currently use a plugin to detect whether one
>>of
>> our applications is installed and then launch it via iframe. This will
>>no
>> longer be possible without plugins, while providing a good user
>>experience.
>>
>> My colleague Ben is currently proposing this API to
>>public-weba...@w3.org,
>> modeled after Win8/IE11’s navigator.msLaunchUri:
>> http://bengjohnson.github.io/ExternalProtocolSpecification.html
>> http://lists.w3.org/Archives/Public/public-webapps/2014JanMar/0791.html
>>
>> msLaunchUri MSDN docs:
>> http://msdn.microsoft.com/en-us/library/ie/jj154912(v=vs.85).aspx
>>
>> Would you consider such an API for Firefox?
>>
>> Cheers,
>> Kosta
>>
>> PS: Sorry for the long signature...
>> --
>> Konstantin Welke
>> Senior Software Developer
>> Citrix Online Germany GmbH | Erzbergerstr. 117 | D-76133 Karlsruhe
>> T: +49 721 3544990 | F: +49 721 354499624 | M: +49 151 23429318
>> konstantin.we...@citrix.com
>> http://www.citrixonline.com <http://www.citrixonline.com/>
>> <http://www.citrixonline.com/>
>>
>> Work better. Live better.
>> Citrix Online Germany GmbH | Erzbergerstr. 117 | D-76133 Karlsruhe
>> Geschäftsführer: Tommy Ahlers | Michael DiFilippo | David Zalewski
>> Sitz der Gesellschaft: Karlsruhe | Registergericht: Amtsgericht Mannheim
>> HRB 713721
>> Citrix Online UK Ltd <http://www.citrixonline.com/imprint-en.tmpl>
>>
>>
>>
>> _______________________________________________
>> dev-platform mailing list
>> dev-platform@lists.mozilla.org
>> https://lists.mozilla.org/listinfo/dev-platform
>>
>

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to