Apps.install

« DOM リファレンス

非標準

概要

アプリのインストールを実行します。インストールの過程で、アプリは検証され、ユーザはインストールを許可するかどうか訪ねられます。

アプリが既に同じドメインからインストールされていた場合、install() を再度呼び出すことで既存のインストールデータが確認なく上書きされます。これは、例えばユーザが無料版からプレミアム版にアップグレードした場合など、購入レシートの変更に使用される場合があります。

構文

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

引数

注: 現在 (2012 年 5 月時点)、url 引数に相対パスを使った場合に生じるバグがあります。バグ 745928 を参照してください。
url
インストールされる マニフェスト の場所を含んだ string 型の URL。独自配布の場合 (インストール元がアプリの生成元と同じ場合)、インストール元のサイトは URL の生成元部分を省略し、(/ で始まる) 絶対パスを使うことも可能です。
receipts
(オプション) 1 つあるいは複数のレシートの配列を含む JSON オブジェクト。例:
window.navigator.mozApps.install(url, {receipts: ["receipt1", ...]})
receipts が省略された場合、これは null として扱われます。詳しくは レシートの検証 を参照してください。

要求された引数 (url) が欠落していた場合、あるいは非対応の引数が与えられた場合、install() 関数は例外を投げます。

戻り値

注: 現在 (2013 年 1 月時点) DOMRequest.result 属性に関してデスクトップと Android 端末に影響するバグがあります。バグ 806597 を参照してください。

install() 関数は DOMRequest オブジェクトを返します。DOMRequest.result フィールドには App オブジェクト が含まれ、これはインストールされたばかりのアプリを説明する JavaScript オブジェクトです。操作が完了するまでは、DOMRequest.resultnull です。

インストールが成功しなかった場合、DOMRequest.error には DOMError オブジェクト が含まれ、これにはエラーに関する情報が含まれます。

DOMRequest.onsuccessDOMRequest.onerror コールバックプロパティとともに install() を使う方法を示した例です。

var request = window.navigator.mozApps.install(manifestUrl);
request.onsuccess = function () {
  // 戻り値の App オブジェクトを保存
  var appRecord = this.result;
  alert('インストール成功!');
};
request.onerror = function () {
  // DOMError オブジェクトからエラー情報を表示
  alert('インストール失敗、エラー: ' + this.error.name);
};

インストールが成功した場合、onsuccess コールバックが呼び出されます。これは、ここ に書かれているインストールアクションが発生したことを意味します。

インストールが成功しなかった場合、onerror コールバックが呼び出されます。失敗したインストールでは、DOMRequest.error にエラーに関する情報を含む DOMError オブジェクトが含まれます。

上のコードでは、既に呼び出された関数の後にリスナーが追加されているため、おかしな感じに見えるかもしれません。しかし、これが DOMRequest オブジェクトの操作方法なのです。関数の呼び出しはリスナーが定義されるまで待機し、リスナーは適切に呼び出されます。install() 関数は onsuccessonerror リスナーが定義されていない場合でも動作します。

エラー

インストールが成功しなかった場合、以下のエラーのいずれかが DOMRequest.error に含まれて返ります。

DENIED
ユーザがインストールをキャンセルした。
INVALID_MANIFEST
マニフェストが、正しい JSON 形式ではあるものの、必要な項目を含んでいないか、何らかの不正な状態。
MANIFEST_URL_ERROR
HTTP 200 以外のステータスコードが返ってきた、あるいは何らかの接続エラー。
MANIFEST_PARSE_ERROR
マニフェストの JSON が不正な形式。
NETWORK_ERROR
接続エラー。
REINSTALL_FORBIDDEN
アプリの再インストールが禁止されている。
MULTIPLE_APPS_PER_ORIGIN_FORBIDDEN
基本的に 1 つの生成源にから 2 つ以上のアプリをインストールできません。

Document Tags and Contributors

タグ:
Contributors to this page: ethertank, Yoshino, chikoski
最終更新者: chikoski,