Marketplace feature removal
The functionality described on this page no longer works — Firefox Marketplace has discontinued support for Android, Desktop, Tablets, and payments (and other related functionality). For more information, read the Future of Marketplace FAQ.
Summary
Returns information about the calling app, if any. You can use this to determine if an app is installed (i.e. if it is running in the browser, or in a separate app context.)
Note: Installable open web apps used to have a "single app per origin" security policy, but this was lifted as of Firefox 34/Firefox OS 2.1 (read this FAQ entry for more information). If you still need to support older versions, consider hosting your apps at separate origins; one strategy is to create different subdomains for your apps.
Syntax
var request = window.navigator.mozApps.getSelf()
;
Return value
getSelf()
returns a DOMRequest
object. When the success
event is fired against the DOMRequest
the DOMRequest.result
field contains either an App
object representing the current app, or a null
if getSelf()
was called outside of an app (meaning the app is not installed). Before the operation is finished, DOMRequest.result
is null
.
If the call is not successful, an error
event is fired against the DOMRequest
and DOMRequest.error
contains a DOMError
object, which has information about the error.
Example
An example that shows how to use getSelf()
with the DOMRequest.onsuccess
and DOMRequest.onerror
callback properties.
var request = window.navigator.mozApps.getSelf(); request.onsuccess = function() { if (request.result) { // Pull the name of the app out of the App object alert("Name of current app: " + request.result.manifest.name); } else { alert("Called from outside of an app"); } }; request.onerror = function() { // Display error name from the DOMError object alert("Error: " + request.error.name); };
If the call is successful an App
object is returned in the result
property of the returned object. In this example this is request.result
. If request.result
is null
, you know the app is not installed.
If your app changes its protocol between HTTP and HTTPS, then it is better to use navigator.mozApps.checkInstalled()
to check if it is installed.