|
|
AIR アプリケーションのアップデート目次 [非表示]ユーザは、コンピュータ上の AIR ファイルをダブルクリックするかブラウザから(シームレスインストール機能を使用して)AIR アプリケーションをインストールまたはアップデートできます。Adobe® AIR® インストーラアプリケーションによってインストールが管理され、既に存在するアプリケーションをアップデートする場合はユーザに警告が表示されます(AIR アプリケーションの配布、インストール、実行を参照してください)。 一方、Updater クラスを使用して、インストールされているアプリケーションの新しいバージョンへのアップデートをアプリケーション自体で行うこともできます(インストールされているアプリケーションで、新しいバージョンをダウンロードしてインストールできるようになったことを検出できます)。Updater クラスに含まれる update() メソッドを使用することにより、ユーザのコンピュータ上の AIR ファイルを参照してそのバージョンにアップデートすることができます。 アップデート AIR ファイルのアプリケーション ID と 発行者 ID の両方が、アップデートするアプリケーションと一致する必要があります。発行者 ID は署名者の証明書から取得します。つまり、アップデートおよびアップデートされるアプリケーションの両方を同じ証明書を使用して署名する必要があります。 AIR 1.1 以降では、アプリケーションを移行して新しいコード署名証明書を使用できます。アプリケーションを移行して新しい署名を使用するには、新しい証明書と元の証明書の両方を使用してアップデート AIR ファイルに署名する必要があります。証明書の移行は一方的なプロセスです。移行後は、新しい証明書(または両方の証明書)で署名した AIR ファイルのみが既存のインストールへのアップデートとして認識されます。 アプリケーションのアップデートの管理は複雑になることがあります。AIR 1.5 には、新しいアップデートフレームワーク(AdobeAIR アプリケーション向け)が含まれています。このフレームワークでは、開発者が AIR アプリケーションに優れたアップデート機能を実装するのを支援する API が提供されています。 証明書の移行により、自己署名証明書から商用コード署名証明書に切り替えたり、自己署名証明書間または商用コード署名証明書間で切り替えたりすることができます。証明書を移行しないと、既存のユーザは現在のバージョンのアプリケーションを削除してから新しいバージョンをインストールする必要があります。詳しくは、証明書の変更を参照してください。 アプリケーションのアップデートについてUpdater クラス(flash.desktop パッケージのクラス)には、update() という 1 つのメソッドが含まれています。このメソッドを使用すると、現在実行されているアプリケーションを別のバージョンにアップデートすることができます。例えば、AIR ファイルのバージョン(「Sample_App_v2.air」)がユーザのデスクトップに保存されている場合にアプリケーションをアップデートするコードの例を次に示します。 var updater = new air.Updater();
var airFile = air.File.desktopDirectory.resolvePath("Sample_App_v2.air");
var version = "2.01";
updater.update(airFile, version);
アプリケーションで Updater クラスを使用する前に、ユーザまたはアプリケーションによって、アップデートバージョンの AIR ファイルがコンピュータにダウンロードされている必要があります。詳しくは、ユーザのコンピュータへの AIR ファイルのダウンロードを参照してください。 Updater.update() メソッド呼び出しの結果ランタイムのアプリケーションで update() メソッドを呼び出すと、ランタイムによってアプリケーションが終了され、AIR ファイルからの新しいバージョンのインストールが試行されます。ランタイムによって、AIR ファイルで指定されたアプリケーション ID および発行者 ID が、update() メソッドの呼び出し元アプリケーションのアプリケーション ID および発行者 ID と一致するかどうかが確認されます(アプリケーション ID および発行者 ID について詳しくは、AIR アプリケーションプロパティの設定を参照してください)。さらに、バージョンストリングが、version ストリング(update() メソッドに渡されたストリング)と一致するかどうかが確認されます。インストールが正常に完了した場合、ランタイムによって新しいバージョンのアプリケーションが起動します。それ以外の場合(インストールを完了できなかった場合)は、既存(インストール前)のバージョンのアプリケーションが再度起動します。 Macintosh でアプリケーションのアップデートバージョンをインストールするには、アプリケーションディレクトリにインストールするための適切なシステム権限が必要です。Windows および Linux では、管理権限が必要です。 アップデートバージョンのアプリケーションで、アップデートバージョンのランタイムが必要な場合は、新しいランタイムバージョンがインストールされます。ランタイムをアップデートするためには、ユーザは対象のコンピュータの管理権限を持っている必要があります。 ADL を使用してアプリケーションをテストしているときに update() メソッドを呼び出すと、ランタイム例外が発生します。 バージョンストリングについてversion パラメータ(update() メソッドのパラメータ)として指定するストリングは、インストールする AIR ファイルのアプリケーション記述ファイルで version 属性(メイン application エレメントの属性)に指定されたストリングと一致する必要があります。セキュリティ上の理由から、必ず version パラメータを指定する必要があります。AIR ファイルのアプリケーションのバージョン番号の確認を必須とすることで、現在インストールされているアプリケーションでは修正済みのセキュリティ上の脆弱性が含まれている可能性がある古いバージョンのアプリケーションが、誤ってインストールされることがなくなります。また、ダウングレード攻撃を回避するために、AIR ファイルのバージョンストリングとインストールされたアプリケーションのバージョンストリングが一致するかどうかをアプリケーションで確認する必要があります。 バージョンストリングは、任意の形式で指定することができます。例えば、「2.01」や「version 2」のように指定できます。このストリングの形式は、アプリケーション開発者が決定します。ランタイムではバージョンストリングの検証は行われないため、アプリケーションのアップデート前にアプリケーションコードで検証する必要があります。 Adobe AIR アプリケーションで Web 経由で AIR ファイルをダウンロードする場合の優れた方法として、ダウンロードしている Adobe AIR アプリケーションのバージョンを Web サービスで通知できるメカニズムがあります。その後、このストリングを、アプリケーションで version パラメータ(update() メソッドのパラメータ)として使用できます。AIR ファイルをこれ以外の方法で取得した場合は AIR ファイルのバージョンが不明な場合がありますが、AIR アプリケーションで AIR ファイルを確認してバージョン情報を特定することができます(AIR ファイルは ZIP 圧縮されたアーカイブで、アプリケーション記述ファイルはそのアーカイブの 2 つ目のレコードです)。 アプリケーション記述ファイルについて詳しくは、AIR アプリケーションプロパティの設定を参照してください。 カスタムのアプリケーションアップデートユーザインターフェイスの表示AIR には、デフォルトのアップデートインターフェイスがあります。 ユーザがアプリケーションのバージョンを最初にマシンにインストールしたときは、常にこのインターフェイスが使用されます。ただし、独自のインターフェイスを定義して以降のインスタンスに使用することができます。アプリケーションでカスタムのアップデートインターフェイスが定義される場合は、現在インストールされているアプリケーションのアプリケーション記述ファイルで customUpdateUI エレメントを指定します。 <customUpdateUI>true</customUpdateUI> アプリケーションがインストールされ、インストールされたアプリケーションとアプリケーション ID および発行者 ID が一致する AIR ファイルがユーザによって開かれると、デフォルトの AIR アプリケーションインストーラではなくランタイムによってアプリケーションが起動します。詳しくは、アプリケーションアップデート用のカスタムユーザインターフェイスの提供を参照してください。 アプリケーションが実行されたとき(NativeApplication.nativeApplication オブジェクトから load イベントが送出されたとき)に、アプリケーションを(Updater クラスを使用して)アップデートするかどうかをアプリケーションで指定できます。アップデートするように指定する場合、アプリケーション独自の(標準で実行されるインターフェイスとは異なる)インストールインターフェイスをユーザに表示することができます。 ユーザのコンピュータへの AIR ファイルのダウンロードUpdater クラスを使用するには、ユーザまたはアプリケーションによって、ユーザのローカルコンピュータに AIR ファイルがあらかじめ保存されている必要があります。 注意: AIR 1.5 にはアップデートフレームワークが含まれており、開発者が AIR アプリケーションに優れたアップデート機能を実装するのを支援します。このフレームワークを使用するのは、 クラスの update() メソッドを直接使用するよりも格段に簡単です。詳しくは、アップデートフレームワークの使用を参照してください。
次のコードでは、URL(http://example.com/air/updates/Sample_App_v2.air)から AIR ファイルを読み取り、その AIR ファイルをアプリケーション記憶領域ディレクトリに保存します。 var urlString = "http://example.com/air/updates/Sample_App_v2.air";
var urlReq = new air.URLRequest(urlString);
var urlStream = new air.URLStream();
var fileData = new air.ByteArray();
urlStream.addEventListener(air.Event.COMPLETE, loaded);
urlStream.load(urlReq);
function loaded(event) {
urlStream.readBytes(fileData, 0, urlStream.bytesAvailable);
writeAirFile();
}
function writeAirFile() {
var file = air.File.desktopDirectory.resolvePath("My App v2.air");
var fileStream = new air.FileStream();
fileStream.open(file, air.FileMode.WRITE);
fileStream.writeBytes(fileData, 0, fileData.length);
fileStream.close();
trace("The AIR file is written.");
}
詳しくは、ファイルの読み取りと書き込みのワークフローを参照してください。 アプリケーションが初めて実行されたかどうかの確認アプリケーションのアップデートの完了後に、ユーザに「はじめに」または「ようこそ」などのメッセージを表示することができます。起動時に、メッセージを表示するかどうかを判断できるように、初めて実行されたかどうかがアプリケーションで確認されます。 注意: AIR 1.5 にはアップデートフレームワークが含まれており、開発者が AIR アプリケーションに優れたアップデート機能を実装するのを支援します。このフレームワークにより、アプリケーションのバージョンが初めて実行されたかどうかを簡単に確認できます。詳しくは、アップデートフレームワークの使用を参照してください。
そのための 1 つの方法として、アプリケーションの初期化時にファイルがアプリケーション記憶領域ディレクトリに保存されます。アプリケーションが起動されるたびに、そのファイルが存在するかどうかをアプリケーションで確認します。ファイルが存在しない場合、アプリケーションは現在のユーザに初めて実行されたことになります。ファイルが存在する場合は、既に少なくとも 1 回はアプリケーションが実行されています。ファイルが存在し、ファイルに現在のバージョン番号よりも古いバージョン番号が含まれていれば、ユーザが新しいバージョンを初めて実行していると判断できます。 次の例は、このコンセプトを示しています。 <html>
<head>
<script src="AIRAliases.js" />
<script>
var file;
var currentVersion = "1.2";
function system extension() {
file = air.File.appStorageDirectory.resolvePath("Preferences/version.txt");
air.trace(file.nativePath);
if(file.exists) {
checkVersion();
} else {
firstRun();
}
}
function checkVersion() {
var stream = new air.FileStream();
stream.open(file, air.FileMode.READ);
var reversion = stream.readUTFBytes(stream.bytesAvailable);
stream.close();
if (reversion != currentVersion) {
window.document.getElementById("log").innerHTML
= "You have updated to version " + currentVersion + ".\n";
} else {
saveFile();
}
window.document.getElementById("log").innerHTML
+= "Welcome to the application.";
}
function firstRun() {
window.document.getElementById("log").innerHTML
= "Thank you for installing the application. \n"
+ "This is the first time you have run it.";
saveFile();
}
function saveFile() {
var stream = new air.FileStream();
stream.open(file, air.FileMode.WRITE);
stream.writeUTFBytes(currentVersion);
stream.close();
}
</script>
</head>
<body onLoad="system extension()">
<textarea ID="log" rows="100%" cols="100%" />
</body>
</html>
アプリケーションでデータをローカル(アプリケーション記憶領域ディレクトリなど)に保存している場合、初めて実行されたときに保存された(以前のバージョンの)データがあるかどうかを確認することができます。 アップデートフレームワークの使用アプリケーションのアップデートの管理は複雑になることがあります。アップデートフレームワーク(AdobeAIR アプリケーション向け)では、開発者が AIR アプリケーションに優れたアップデート機能を実装するのを支援する API が提供されています。 この AIR アップデートフレームワークの機能は、次の点において開発者を支援します。
AIR アップデートフレームワークには、アプリケーションで使用できるサンプルユーザインターフェイスが用意されています。このサンプルユーザインターフェイスにより、アプリケーションのアップデートに関する基本情報とオプションがユーザに提供されます。アプリケーションで独自のカスタムユーザインターフェイスを定義して、アップデートフレームワークに使用することもできます。 AIR アップデートフレームワークを使用すると、AIR アプリケーションのアップデートバージョンに関する情報を単純な XML 設定ファイルに格納できます。ほとんどのアプリケーションでは、これらの設定ファイルを設定していくつかの基本コードを含めることにより、優れたアップデート機能をエンドユーザに提供できます。 アップデートフレームワークを使用しない場合でも、Adobe AIR には、AIR アプリケーションの新しいバージョンへのアップグレードに使用できる Updater クラスが用意されています。 このクラスを使用して、ユーザのコンピュータ上の AIR ファイルに含まれているバージョンにアプリケーションをアップグレードできます。ただし、アップグレードの管理では、ローカルに保存されている AIR ファイルに基づいてアプリケーションをアップデートする以外にも作業が必要になることがあります。 AIR アップデートフレームワークのファイルAIR アップデートフレームワークには、次のディレクトリが含まれています。
HTML ベースの AIR アプリケーションへのフレームワークファイルのインクルードアップデートフレームワークの frameworks\html ディレクトリには、次のファイルが含まれています。
AIR アプリケーションの JavaScript コードでは、SWF ファイルで定義されているクラスを使用できます。 アップデートフレームワークを使用するには、アプリケーションディレクトリ(またはサブディレクトリ)に ApplicationUpdater.swf ファイルまたは ApplicationUpdater_UI.swf ファイルを含めます。次に、そのファイルを読み込む script タグを、フレームワークを使用する HTML ファイルの JavaScript コードに含めます。 <script src="applicationUpdater.swf" type="application/x-shockwave-flash"/> ApplicationUpdater_UI.swf ファイルを読み込む場合は、次の script タグを使用します。 <script src="ApplicationUpdater_UI.swf" type="application/x-shockwave-flash"/> これらの 2 つのファイルで定義されている API については、このドキュメントの後半で説明します。 基本のサンプル:ApplicationUpdaterUI バージョンの使用アップデートフレームワークの ApplicationUpdaterUI バージョンには、アプリケーションで簡単に使用できる基本インターフェイスが用意されています。以下に基本のサンプルを示します。 まず、アップデートフレームワークを呼び出す AIR アプリケーションを作成します。
次に、AIR アプリケーションのアップデートバージョンを Web サーバに追加します。
これは基本のサンプルですが、多くのアプリケーションに十分なアップデート機能を提供できます。このドキュメントの後半では、ニーズに最も適したアップデートフレームワークの使用方法について説明します。 アップデートフレームワークの使用方法を示す別の例については、Adobe AIR デベロッパーセンターで、「HTML ベースアプリケーションにおけるアップデートフレームワーク」(http://www.adobe.com/go/learn_air_qs_update_framework_html_jp)のサンプルアプリケーションを参照してください。 アップデート記述ファイルの定義と Web サーバへの AIR ファイルの追加AIR アップデートフレームワークを使用するときは、使用できるアップデートに関する基本情報を、Web サーバに格納されるアップデート記述ファイルに定義します。アップデート記述ファイルは単純な XML ファイルです。アプリケーションに含まれているアップデートフレームワークは、このファイルをチェックして、新しいバージョンがアップロードされているかどうかを調べます。 アップデート記述ファイルには次のデータが含まれます。
version エレメントと url エレメントは必須です。description エレメントはオプションです。 次にアップデート記述ファイルのサンプルを示します。 <?xml version="1.0" encoding="utf-8"?>
<update xmlns="http://ns.adobe.com/air/framework/update/description/1.0">
<version>1.1a1</version>
<url>http://example.com/updates/sample_1.1a1.air</url>
<description>This is the latest version of the Sample application.</description>
</update>
複数の言語を使用して description タグを定義する必要がある場合は、複数の text エレメントを使用して lang 属性を定義します。 <?xml version="1.0" encoding="utf-8"?>
<update xmlns="http://ns.adobe.com/air/framework/update/description/1.0">
<version>1.1a1</version>
<url>http://example.com/updates/sample_1.1a1.air</url>
<description>
<text xml:lang="en">English description</text>
<text xml:lang="fr">French description</text>
<text xml:lang="ro">Romanian description</text>
</description>
</update>
アップデート記述ファイルをアップデート AIR ファイルと共に Web サーバに配置します。 アップデートフレームワークの templates ディレクトリには、サンプルのアップデート記述ファイルがあります。このサンプルには、単一言語と複数言語の両方のバージョンが含まれています。 Updater オブジェクトのインスタンス化コードに AIR アップデートフレームワークを読み込んだ後(HTML ベースの AIR アプリケーションへのフレームワークファイルのインクルードを参照)、次の例のように Updater オブジェクトをインスタンス化する必要があります。 var appUpdater = new runtime.air.update.ApplicationUpdater(); 前述のコードでは、(ユーザインターフェイスを含まない)ApplicationUpdater クラスを使用しています。(ユーザインターフェイスを提供する)ApplicationUpdaterUI クラスを使用する場合は、次のコードを使用します。 var appUpdater = new runtime.air.update.ApplicationUpdaterUI(); このドキュメントの以降のコード例は、appUpdater という名前の Updater オブジェクトをインスタンス化済みであることを前提としています。 アップデート設定の構成ApplicationUpdater と ApplicationUpdaterUI はいずれも、アプリケーションに付属する設定ファイルを使用するか、アプリケーションで ActionScript または JavaScript を使用して設定できます。 XML 設定ファイルでのアップデート設定の定義アップデート設定ファイルは XML ファイルです。このファイルには、次のエレメントを含めることができます。
ApplicationUpdaterUI の設定ファイルには、updateURL エレメントと delay エレメントに加えて次のエレメントを含めることができます。
次に ApplicationUpdater フレームワークの設定ファイルの例を示します。 <?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0">
<url>http://example.com/updates/update.xml</url>
<delay>1</delay>
</configuration>
次に、defaultUI エレメントの定義を含む、ApplicationUpdaterUI フレームワークの設定ファイルの例を示します。 <?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0">
<url>http://example.com/updates/update.xml</url>
<delay>1</delay>
<defaultUI>
<dialog name="checkForUpdate" visible="false" />
<dialog name="downloadUpdate" visible="false" />
<dialog name="downloadProgress" visible="false" />
</defaultUI>
</configuration>
configurationFile プロパティでは、次に示すように設定ファイルの場所を指定します。
アップデートフレームワークの templates ディレクトリには、config-template.xml という名前のサンプルの設定ファイルがあります。 アップデート設定の ActionScript コードまたは JavaScript コードの定義これらの設定パラメータは、次に示すようにアプリケーションのコードを使用して設定することもできます。 appUpdater.updateURL = " http://example.com/updates/update.xml"; appUpdater.delay = 1; Updater オブジェクトのプロパティは updateURL および delay です。これらのプロパティでは、設定ファイルの updateURL エレメントおよび delay エレメントと同じ設定(アップデート記述ファイルの URL およびアップデートのチェックの間隔)を定義します。設定ファイル と コードでの設定を指定した場合は、コードで設定されたプロパティが、設定ファイル内の対応する設定より優先されます。 updateURL プロパティは、設定ファイルまたはスクリプトで定義する必要があります(アップデート記述ファイルの定義と Web サーバへの AIR ファイルの追加を参照してください)。このプロパティは、Updater を使用する前、つまり Updater オブジェクトの initialize() メソッドを呼び出す前(アップデートフレームワークの初期化を参照してください)に定義する必要があります。 ApplicationUpdaterUI フレームワークでは、Updater オブジェクトの次のような追加のプロパティを定義します。
各プロパティは、ApplicationUpdaterUI ユーザインターフェイスの 1 つ以上のダイアログボックスに対応しています。各プロパティは Boolean 値で、デフォルト値は true です。false に設定した場合、対応するダイアログボックスはアップデート中に表示されません。 これらのダイアログボックスのプロパティは、アップデート設定ファイル内の設定をオーバーライドします。 アップデートプロセスAIR アップデートフレームワークでは、次のステップでアップデートプロセスが実行されます。
これらの各ステップが完了するたびに、Updater オブジェクトからイベントが送出されます。ApplicationUpdater バージョンでは、プロセスのステップが正常に完了したことを示すイベントをキャンセルできます。これらのイベントのいずれかをキャンセルすると、プロセスのその次のステップがキャンセルされます。ApplicationUpdaterUI バージョンでは、プロセスのステップごとに、プロセスをキャンセルするか進行させるかをユーザが選択できるダイアログボックスが表示されます。 イベントをキャンセルした場合、Updater オブジェクトのメソッドを呼び出すとプロセスを再開できます。 ApplicationUpdater バージョンでアップデートプロセスが進行するときは、現在の状態が currentState プロパティに記録されます。このプロパティは、次のいずれかの値のストリングに設定されます。
Updater オブジェクトのメソッドの中には、Updater が特定の状態の場合にのみ実行されるものもあります。 アップデートフレームワークの初期化アップデートを初期化するには、設定プロパティを設定した後に(基本のサンプル:ApplicationUpdaterUI バージョンの使用を参照してください)initialize() メソッドを呼び出します。 appUpdater.initialize(); このメソッドは、次の処理を行います。
このメソッドを呼び出すと、Updater オブジェクトから次のイベントが送出されます。
UpdateEvent.INITIALIZED イベントが送出されると、アップデートプロセスが完了します。 initialize() メソッドを呼び出すと、タイマーの delay の設定に基づいてアップデートプロセスが開始され、すべてのステップが実行されます。しかし、Updater オブジェクトの checkNow() メソッドを呼び出すことにより、任意の時点でアップデートプロセスを開始することもできます。 appUpdater.checkNow(); アップデートプロセスが既に実行中の場合は、このメソッドを呼び出しても何も起こりません。それ以外の場合は、アップデートプロセスが開始されます。 checkNow() メソッドを呼び出すと、Updater オブジェクトから次のイベントが送出されます。
checkForUpdate イベントをキャンセルした場合、Updater オブジェクトの checkForUpdate() メソッドを呼び出すことができます(次の節を参照してください)。このイベントをキャンセルしない場合、アップデートプロセスが進行し、アップデート記述ファイルがチェックされます。 ApplicationUpdaterUI バージョンでのアップデートプロセスの管理ApplicationUpdaterUI バージョンでは、ユーザはユーザインターフェイスのダイアログボックスにある「キャンセル」を使用してプロセスをキャンセルできます。また、ApplicationUpdaterUI オブジェクトの cancelUpdate() メソッドを呼び出して、アップデートプロセスをプログラムによってキャンセルすることもできます。 ApplicationUpdaterUI オブジェクトのプロパティを設定するか、アップデート設定ファイルでエレメントを定義して、Updater に表示される確認ダイアログボックスを指定します。詳しくは、アップデート設定の構成を参照してください。 ApplicationUpdater バージョンでのアップデートプロセスの管理ApplicationUpdater オブジェクトによって送出されるイベントオブジェクトの preventDefault() メソッドを呼び出して、アップデートプロセスのステップをキャンセルできます(アップデートプロセスを参照)。デフォルト動作をキャンセルすると、アプリケーションでは続行するかどうかをユーザに確認するメッセージを表示できます。 以降の節では、プロセスのステップがキャンセルされたときにアップデートプロセスを続行する方法について説明します。 アップデート記述ファイルのダウンロードと解釈アップデートプロセスが開始される前(Updater がアップデート記述ファイルのダウンロードを試みる直前)に、ApplicationUpdater オブジェクトから checkForUpdate イベントが送出されます。checkForUpdate イベントのデフォルト動作をキャンセルすると、アップデート記述ファイルはダウンロードされません。checkForUpdate() メソッドを呼び出すと、アップデートプロセスを再開できます。 appUpdater.checkForUpdate(); checkForUpdate() メソッドを呼び出すと、アップデート記述ファイルが非同期でダウンロードおよび解釈されます。checkForUpdate() メソッドを呼び出すと、Updater オブジェクトから次のイベントが送出されます。
アップデート AIR ファイルのダウンロードUpdater がアップデート記述ファイルを正常にダウンロードおよび解釈した後、ApplicationUpdater オブジェクトから updateStatus イベントが送出されます。デフォルト動作では、アップデートファイル(使用可能な場合)のダウンロードが開始されます。デフォルト動作をキャンセルすると、downloadUpdate() メソッドを呼び出してアップデートプロセスを再開できます。 appUpdater.downloadUpdate(); このメソッドを呼び出すと、AIR ファイルのアップデートバージョンが非同期でダウンロードされます。 downloadUpdate() メソッドからは次のイベントが送出されます。
アプリケーションのアップデートアップデートファイルのダウンロードが完了すると、ApplicationUpdater オブジェクトから downloadComplete イベントが送出されます。デフォルト動作をキャンセルすると、installUpdate() メソッドを呼び出してアップデートプロセスを再開できます。 appUpdater.installUpdate(file); このメソッドを呼び出すと、AIR ファイルのアップデートバージョンがインストールされます。このメソッドには file というパラメータが 1 つあります。このパラメータは、アップデートとして使用する AIR ファイルを参照する File オブジェクトです。 ApplicationUpdater オブジェクトから beforeInstall イベントが送出されるのは、installUpdate() メソッドを呼び出した後です。
任意の AIR ファイルからのインストールinstallFromAIRFile() メソッドを呼び出すと、ユーザのコンピュータの AIR ファイルからアップデートバージョンをインストールできます。 appUpdater.installFromAIRFile(); このメソッドにより、AIR ファイルからアプリケーションのアップデートバージョンがインストールされます。 installFromAIRFile() メソッドからは次のイベントが送出されます。
アップデートプロセスのキャンセルcancelUpdate() メソッドを呼び出すと、アップデートプロセスをキャンセルできます。 appUpdater.cancelUpdate(); このメソッドにより、保留中のダウンロードがあればキャンセルされ、ダウンロードされた不完全なファイルがあれば削除され、定期的なチェックのタイマーが再起動されます。 Updater オブジェクトの初期化中は、このメソッドを呼び出しても何も起こりません。 ApplicationUpdaterUI のインターフェイスのローカライズApplicationUpdaterUI クラスには、アップデートプロセス用のデフォルトのユーザインターフェイスが用意されています。このインターフェイスには、ユーザがプロセスの起動、プロセスのキャンセルおよびその他の関連アクションの実行に使用できるダイアログボックスが含まれています。 アップデート記述ファイルの description エレメントでは、アプリケーションの説明を複数の言語で定義できます。次に示すように、複数の text エレメントを使用して lang 属性を定義します。 <?xml version="1.0" encoding="utf-8"?>
<update xmlns="http://ns.adobe.com/air/framework/update/description/1.0">
<version>1.1a1</version>
<url>http://example.com/updates/sample_1.1a1.air</url>
<description>
<text xml:lang="en">English description</text>
<text xml:lang="fr">French description</text>
<text xml:lang="ro">Romanian description</text>
</description>
</update>
アップデートフレームワークは、エンドユーザのロケールチェーンに最も適した説明を使用します。詳しくは、「アップデート記述ファイルの定義と Web サーバへの AIR ファイルの追加」を参照してください。 Flex 開発者は、"ApplicationUpdaterDialogs" バンドルに直接新しい言語を追加できます。 JavaScript 開発者は、Updater オブジェクトの addResources() メソッドを呼び出すことができます。このメソッドにより、言語の新しいリソースバンドルが動的に追加されます。リソースバンドルでは、言語のローカライズされたストリングが定義されます。これらのストリングは、ダイアログボックスの様々なテキストフィールドで使用されます。 JavaScript 開発者は ApplicationUpdaterUI クラスの localeChain プロパティを使用して、ユーザインターフェイスで使用されるロケールチェーンを定義できます。通常、JavaScript(HTML)開発者のみがこのプロパティを使用します。Flex 開発者は ResourceManager を使用してロケールチェーンを管理できます。 例えば、次の JavaScript コードはルーマニア語およびハンガリー語のリソースバンドルを定義します。 appUpdater.addResources("ro_RO",
{titleCheck: "Titlu", msgCheck: "Mesaj", btnCheck: "Buton"});
appUpdater.addResources("hu", {titleCheck: "Cím", msgCheck: "Üzenet"});
var languages = ["ro", "hu"];
languages = languages.concat(air.Capabilities.languages);
var sortedLanguages = air.Localizer.sortLanguagesByPreference(languages,
air.Capabilities.language,
"en-US");
sortedLanguages.push("en-US");
appUpdater.localeChain = sortedLanguages;
詳しくは、リファレンスガイドの ApplicationUpdaterUI クラスの addResources() メソッドに関する説明を参照してください。 |