非標準
This feature is not on a current W3C standards track, but it is supported on the Firefox OS platform. Although implementations may change in the future and it is not supported widely across browsers, it is suitable for use in code dedicated to Firefox OS apps.
概要
アプリのインストールを実行します。インストールの過程で、アプリは検証され、ユーザはインストールを許可するかどうか訪ねられます。
アプリが既に同じドメインからインストールされていた場合、install()
を再度呼び出すことで既存のインストールデータが確認なく上書きされます。これは、例えばユーザが無料版からプレミアム版にアップグレードした場合など、購入レシートの変更に使用される場合があります。
構文
var request = window.navigator.mozApps.install(url, [receipt1, …])
;
引数
url
引数に相対パスを使った場合に生じるバグがあります。バグ 745928 を参照してください。-
url
-
インストールされる マニフェスト の場所を含んだ
string
型の URL。独自配布の場合 (インストール元がアプリの生成元と同じ場合)、インストール元のサイトは URL の生成元部分を省略し、(/
で始まる) 絶対パスを使うことも可能です。 -
receipts
- (オプション) 1 つあるいは複数のレシートの配列を含む配列。例:
-
window.navigator.mozApps.install(url, ["receipt"])
-
receipts
が省略された場合、これはnull
として扱われます。詳しくは レシートの検証 を参照してください。
要求された引数 (url
) が欠落していた場合、あるいは非対応の引数が与えられた場合、install()
関数は例外を投げます。
戻り値
install()
関数は DOMRequest
オブジェクトを返します。DOMRequest.result
フィールドには App
オブジェクト が含まれ、これはインストールされたばかりのアプリを説明する JavaScript オブジェクトです。操作が完了するまでは、DOMRequest.result
は null
です。
インストールが成功しなかった場合、DOMRequest.error
には DOMError
オブジェクト が含まれ、これにはエラーに関する情報が含まれます。
例
DOMRequest.onsuccess
と DOMRequest.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()
関数は onsuccess
や onerror
リスナーが定義されていない場合でも動作します。
エラー
インストールが成功しなかった場合、以下のエラーのいずれかが 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 つ以上のアプリをホストできません。