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