Application Update Framework for Adobe AIR ベータ公開

AIR アプリケーションのアップデート機能を簡単に実装するためのフレームワークが Adobe Labs に公開されました。(Application Update Framework for Adobe AIR@Labs) フレームワークやドキュメントは air_appupdater_061608.zip (ZIP : 0.92 MB) に含まれています。

このフレームワークにはアップデートの有無からインストール完了の確認までに必要な機能と UI がひととおり含まれています。標準の UI の代わりにカスタム UI も使用することも可能です。

SDK 内には 4 つの同じような名前のファイルが提供されていますが swc ファイルが Flash 用、swf ファイルが HTML 用です。標準で提供される UI を使用する場合は ApplicationUpdaterUI.swc (swf) を、UI を使用しない場合は ApplicationUpdater.swc (swf) を使用します。

このフレームワークでサポートされるのは以下のようなシナリオです。

  1. 定期的にアップデートの確認を実行
  2. アップデート情報の書かれた XML ファイルをダウンロードし内容をチェック
  3. 新しいバージョンの AIR アプリケーションをダウンロードしてインストールを開始
  4. アップデートの確認からインストール進行状況の通知まで個々のステップにおけるイベントの発行
  5. アップデートされたアプリケーションの最初の実行時のイベント発行

従って、このフレームワークを使用するには、決められたフォーマットの XML ファイルをサーバ側に用意する必要があります。このファイルをアップデート記述子と呼びます。

アップデート記述子には以下の 3 つの項目を記述します。どれも必須項目です。

  • version - AIR アプリケーションの新しいバージョン、アプリケーション記述ファイル内の version と同じ値を使用
  • url - AIR アプリケーションのパッケージファイルの URL
  • description - アップデート処理中に表示される新しいバージョンに関する情報

下はアップデート記述子の簡単なサンプルです。description には 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="ja">日本語 description</text>
    <text xml:lang="fr">French description</text>
  </description>
</update>
 

さて、アップデート機能を利用するには ApplicationUpdaterUI か ApplicationUpdater のインスタンスを使用します。このとき属性として以下の項目を設定できます。

  • updateURL: String - アップデート記述子の場所を URL で記述
  • delay: Number - アップデート確認の間隔を日単位で指定 (0.01 のような値も可)
  • defaultUI: <dialog> タグを使って標準 UI の使用を指定 (利用可能なダイアログは “checkForUpdate”,” downloadUpdate”, “downloadProgress”, “installUpdate”, “fileUpdate”, “unexpectedError”)

これらの属性を外部 XML ファイル経由で読み込むことができます。下は外部 XML ファイルの記述例です。

<?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="downloadProgress" visible="false" />
  </defaultUI>
</configuration>
 

外部 XML ファイルを利用する場合は、ファイルの場所を configurationFile 属性に設定します。

var appUpdaterUI:ApplicationUpdaterUI = new ApplicationUpdaterUI();
appUpdaterUI.configurationFile = "cfg/updateConfig.xml";
 

XML ファイルを使用する代わりに ApplicationUpdater の属性に直接値を指定することもできます。

var appUpdaterUI:ApplicationUpdaterUI = new ApplicationUpdaterUI();
appUpdaterUI.updateURL = "http://example.com/updates/update.xml";
appUpdaterUI.delay = 1;
 

属性を設定したら、必要なイベント処理を登録してから initialize() メソッドを呼びます。これでアップデート機能が実行されます。イベントの詳細についてはフレームワークに付属するドキュメントを参照してください。

var appUpdaterUI:ApplicationUpdaterUI = new ApplicationUpdaterUI();
appUpdaterUI.configurationFile = "cfg/updateConfig.xml";
 
appUpdaterUI.addEventListener(UpdateEvent.DOWNLOAD_COMPLETE, onDownloadComplete);
appUpdaterUI.addEventListener(StatusUpdateEvent.UPDATE_STATUS, onStatusUpdate);
appUpdaterUI.addEventListener(StatusUpdateErrorEvent.UPDATE_ERROR, onStatusUpdateError);
appUpdaterUI.addEventListener(DownloadErrorEvent.DOWNLOAD_ERROR, onDownloadError);
appUpdaterUI.addEventListener(ErrorEvent.ERROR, onError);
 
appUpdaterUI.initialize();
 

ApplicationUpdater のインスタンスを同時に複数使うことはできません。

 

コメントする

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261