Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 1027084 of DOMApplicationsRegistry.install()

  • Revision slug: Mozilla/Firefox_OS/API/DOMApplicationsRegistry/install
  • Revision title: DOMApplicationsRegistry.install()
  • Revision id: 1027084
  • Created:
  • Creator: chrisdavidmills
  • Is current revision? No
  • Comment

Revision Content

{{MarketplaceDeprecatedNotice}}{{FirefoxOSAPIRef("Apps")}}

Summary

Triggers the installation of an app. During the installation process, the app is validated and the user is prompted to approve the installation.

If the app has previously been installed from the same domain, calling install() again may silently overwrite the existing install data. This can be used to modify the purchase receipt, for example, when a user upgrades from a free app to a premium app.

Syntax

var request = window.navigator.mozApps.install(url, [receipt1, …]);

Parameters

Note: There is currently (May 2012) a bug with passing a relative path in the url parameter. See {{ Bug("745928") }}.
url
A string URL containing the location of the manifest to be installed. In the case of self distribution (where the installing origin is the same as the app origin), the installing site may omit the origin part of the URL and provide an absolute path (beginning with /).
receipts
(Optional) An array of one or more receipts. Example:
window.navigator.mozApps.install(url, ["receipt"])
If receipts is omitted it is treated as null. For more information see Validating a receipt.

The install() function throws an exception if the required argument (url) is missing, or if unsupported arguments are present.

Return value

The install() function returns a {{ domxref("DOMRequest") }} object. The DOMRequest.result field contains an App object, which is a JavaScript object that describes the app that was just installed. Before the operation is finished, DOMRequest.result is null.

If the installation is not successful, DOMRequest.error contains a DOMError object, which has information about the error.

Errors

When the installation is unsuccessful, one of the following errors can be returned in DOMRequest.error.

DENIED
The user cancelled the installation.
INVALID_MANIFEST
The manifest, while well-formed JSON, does not have some required field or is somehow invalid.
MANIFEST_URL_ERROR
Something other than an HTTP 200 status code was received, or some connection errors.
INVALID_URL
 
MANIFEST_PARSE_ERROR
Bad JSON in the manifest.
NETWORK_ERROR
Connection error.
REINSTALL_FORBIDDEN
Reinstalls of apps are forbidden.
MULTIPLE_APPS_PER_ORIGIN_FORBIDDEN
Prior to Gecko 34 (Firefox OS before 2.2, Firefox Desktop/Android before 34), installable apps have a "single app per origin" security policy; basically, you can't host more than one installable app per origin.

Example

An example that shows how to use install() with the DOMRequest.onsuccess and DOMRequest.onerror callback properties.

var request = window.navigator.mozApps.install(manifestUrl);
request.onsuccess = function () {
  // Save the App object that is returned
  var appRecord = this.result;
  alert('Installation successful!');
};
request.onerror = function () {
  // Display the error information from the DOMError object
  alert('Install failed, error: ' + this.error.name);
};

The onsuccess callback is called if the installation is successful. This means that the installation actions described here have occurred.

If the installation is not successful the onerror callback is called. On a failed installation, DOMRequest.error contains a DOMError object that has information about the error.

The code above may look unusual to you, with listeners being added after the function has already been invoked. However, this is the way the DOMRequest object operates. The function invocation will wait until the listeners are defined, and then the listeners will fire appropriately. The install() function also works by itself, without the .onsuccess and .onerror listeners.

Revision Source

<div>{{MarketplaceDeprecatedNotice}}{{FirefoxOSAPIRef("Apps")}}</div>

<h2 id="Summary" name="Summary">Summary</h2>

<p>Triggers the installation of an app. During the installation process, the app is validated and the user is prompted to approve the installation.</p>

<p>If the app has previously been installed from the same domain, calling <code>install()</code> again may silently overwrite the existing install data. This can be used to modify the purchase receipt, for example, when a user upgrades from a free app to a premium app.</p>

<h2 id="Syntax" name="Syntax">Syntax</h2>

<pre class="syntaxbox">
<code>var <em>request</em> = window.navigator.mozApps.install(<em>url</em>, <em>[receipt1, …]</em>)</code>;</pre>

<h3 id="Parameters" name="Parameters">Parameters</h3>

<div class="note"><strong>Note:</strong> There is currently (May 2012) a bug with passing a relative path in the <code>url</code> parameter. See {{ Bug("745928") }}.</div>

<dl>
 <dt><code>url</code></dt>
 <dd>A <a href="/en-US/docs/JavaScript/Reference/Global_Objects/String"><code>string</code></a> URL containing the location of the <a href="/en-US/docs/Web/Apps/Manifest">manifest</a> to be installed. In the case of self distribution (where the installing origin is the same as the app origin), the installing site may omit the origin part of the URL and provide an absolute path (beginning with <code>/</code>).</dd>
 <dt><code><strong>receipts</strong></code></dt>
 <dd>(Optional) An array of one or more receipts. Example:</dd>
 <dd>
 <pre>
window.navigator.mozApps.install(url, ["receipt"])</pre>
 </dd>
 <dd>If <code>receipts</code> is omitted it is treated as <code>null</code>. For more information see <a href="/en-US/docs/Web/Apps/Publishing/Validating_a_receipt">Validating a receipt</a>.</dd>
</dl>

<p>The <code>install()</code> function throws an exception if the required argument (<code>url</code>) is missing, or if unsupported arguments are present.</p>

<h3 id="Returns" name="Returns">Return value</h3>

<p>The <code>install()</code> function returns a {{ domxref("DOMRequest") }} object. The <code>DOMRequest.result</code> field contains an <a href="/en-US/docs/Web/API/App"><code>App</code> object</a>, which is a JavaScript object that describes the app that was just installed. Before the operation is finished, <code>DOMRequest.result</code> is <code>null</code>.</p>

<p>If the installation is not successful, <code>DOMRequest.error</code> contains a <a href="/en-US/docs/Web/Apps/JavaScript_API/Error_object"><code>DOMError</code> object</a>, which has information about the error.</p>

<h3 id="Error" name="Error">Errors</h3>

<p>When the installation is unsuccessful, one of the following errors can be returned in <code>DOMRequest.error</code>.</p>

<dl>
 <dt><code>DENIED</code></dt>
 <dd>The user cancelled the installation.</dd>
 <dt><code>INVALID_MANIFEST</code></dt>
 <dd>The manifest, while well-formed JSON, does not have some required field or is somehow invalid.</dd>
 <dt><code>MANIFEST_URL_ERROR</code></dt>
 <dd>Something other than an HTTP 200 status code was received, or some connection errors.</dd>
 <dt><code>INVALID_URL</code></dt>
 <dd>&nbsp;</dd>
 <dt><code>MANIFEST_PARSE_ERROR</code></dt>
 <dd>Bad JSON in the manifest.</dd>
 <dt><code>NETWORK_ERROR</code></dt>
 <dd>Connection error.</dd>
 <dt><code>REINSTALL_FORBIDDEN</code></dt>
 <dd>Reinstalls of apps are forbidden.</dd>
 <dt><code>MULTIPLE_APPS_PER_ORIGIN_FORBIDDEN</code></dt>
 <dd>Prior to Gecko 34 (Firefox OS before 2.2, Firefox Desktop/Android before 34), installable apps have a "single app per origin" security policy; basically, you can't host more than one installable app per origin.</dd>
</dl>

<h2 id="Example" name="Example">Example</h2>

<p>An example that shows how to use <code>install()</code> with the <code>DOMRequest.onsuccess</code> and <code>DOMRequest.onerror</code> callback properties.</p>

<pre class="brush: js">
var request = window.navigator.mozApps.install(manifestUrl);
request.onsuccess = function () {
  // Save the App object that is returned
  var appRecord = this.result;
  alert('Installation successful!');
};
request.onerror = function () {
  // Display the error information from the DOMError object
  alert('Install failed, error: ' + this.error.name);
};
</pre>

<p>The <code>onsuccess</code> callback is called if the installation is successful. This means that the installation actions described <a href="/en-US/docs/Web/Apps/Platform-specific_details">here</a> have occurred.</p>

<p>If the installation is not successful the <code>onerror</code> callback is called. On a failed installation, <code>DOMRequest.error</code> contains a <code>DOMError</code> object that has information about the error.</p>

<p>The code above may look unusual to you, with listeners being added after the function has already been invoked. However, this is the way the <code>DOMRequest</code> object operates. The function invocation will wait until the listeners are defined, and then the listeners will fire appropriately. The <code>install()</code> function also works by itself, without the <code>.onsuccess</code> and <code>.onerror</code> listeners.</p>

<h2 id="Related_topics" name="Related_topics">Related topics</h2>

<ul>
 <li><a href="/en-US/docs/Web/Apps/Publishing/Validating_a_receipt">Validating a receipt</a></li>
 <li><a href="/en-US/docs/Web/Apps/Platform-specific_details">Platform-specific details</a></li>
 <li><a href="/en-US/docs/Web/API/App">App object</a></li>
 <li><a href="/en-US/docs/Web/API/DOMError">DOMError object</a></li>
 <li><a href="/en-US/docs/Web/Apps/JavaScript_API">Apps JavaScript API</a></li>
</ul>
Revert to this revision