HAKUHIN's home page
更新履歴
 
 



AIR アプリをブラウザからインストールする
 

サンプルをダウンロード
 


■インストール用の通常の Flash を作成する

インストール用の通常の Flash を ActionScript3.0 で作成します。

Flash Player の設定ダイアログを使用するため、幅 217 、高さ180 以上のサイズで作成する必要があります。
 
ブラウザからAIRアプリケーションにアクセスするには専用の API を使用します。 この API は、FlashPlayer のバージョンが 9.0.115.0 以降で動作するようです。
 
■インストール用 API を使用する為の準備

以下の URL にある air.swf ファイルを Loader クラスを使って読みこみます。 この air.swf ファイルの中にブラウザ用の API が用意されています。
 
air.swf ファイルが格納されている URL

http://airdownload.adobe.com/air/browserapi/air.swf
 
air.swf ファイルを読み込む例です。
 
air.swf ファイルを読み込む

var air_swf_url = new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf");
var air_swf = null;

var loader_obj = new Loader();
var info = loader_obj.contentLoaderInfo;

// アプリケーションドメインの変更
var loader_context = new LoaderContext();
loader_context.applicationDomain = ApplicationDomain.currentDomain;

// 読み込みが完了して初期済み
info.addEventListener(Event.INIT, LoaderInitFunc); 
function LoaderInitFunc(e){
    air_swf = e.target.content; 
}

// 読み込み開始
loader_obj.load(air_swf_url,loader_context); 
 
■ランタイムがインストールされているか調べる

getStatus() メソッドを使用すると AIR ランタイムがインストールされているか調べる事ができます。
 
ランタイムがインストールされているか調べる

// AIR ランタイムがインストールされているか調べる
var status = air_swf.getStatus();

switch(status){
case "unavailable":
	trace("ランタイムはインストールされていない。ランタイムのインストールは不可能。");
	break;
case "available":
	trace("ランタイムはインストールされていない。ランタイムのインストールは可能。");
	break;
case "installed":
	trace("ランタイムはインストール済み。");
	break;
};
 
■AIR アプリケーションをインストールする

AIR アプリケーションインストーラを起動するには installApplication() メソッドを呼び出します。
 
このメソッドは、ボタンイベントなどマウスがクリックされたタイミングで呼び出す必要があります。
 
(air.swf).installApplication ( url , 動作に必要なAIRランタイムのバージョン , param );
第01引数 String型でファイルまでのパスを絶対パスで指定します。相対パスは使用できません。
第02引数 AIR アプリケーションで動作するのに最低限必要な AIR ランタイムのバージョンを指定。
第03引数(略可)AIR アプリケーションにパラメータを渡したい場合に指定
戻り値 なし
 
AIR アプリケーションをインストールする

var air_app_url = "http:hakuhin.jp/test.air";
var air_version = "1.0";
air_swf.installApplication( air_app_url, air_version );
 
すでに AIR ランタイムがインストールされていれば続けてすぐに AIR アプリケーションインストーラが起動します。
 
 
 
もし AIR ランタイムがインストールされていない場合は、 AIR アプリケーションインストーラが起動せずに AIR ランタイムのインストールを促すダイアログが表示されます。
 
 
 
AIR ランタイムのインストールが終わればすぐに AIR アプリケーションインストーラが起動します。
 
■インストール用 API が動作しない?

HTML タグの wmode パラメータに "direct" や "gpu" を指定すると AIR ランタイムのインストーラが起動しないようです。

「Windows XP」「Flash Player 10.1」「Adobe AIR 2.0.2」で確認
 
 




AIR アプリをブラウザから起動する
 


■インストールされているAIR アプリケーションのバージョンを調べる

getApplicationVersion() メソッドを使用すると インストールされているAIR アプリケーションのバージョンを調べる事ができます。 AIR ランタイムがインストールされていない環境でこの関数を呼び出した場合エラーとなります。
 
(air.swf).getApplicationVersion ( アプリケーションID , 発行者ID , コールバック関数 );
第01引数 AIR アプリケーションのアプリケーションIDを指定します。
第02引数 AIR アプリケーションの発行者IDを指定します。
第03引数 バージョンを取得するためのコールバック関数を登録します。
戻り値 なし
 
■アプリケーションIDの取得方法

アプリケーション ID は、「AIR インストーラーの設定ダイアログ」の以下の部分に相当します。
 
 
■発行者IDの取得方法

AIRアプリケーションで以下の関数を呼び出すと確認できます。ADL 上では動作しません。
 
発行者IDを確認する

import flash.desktop.NativeApplication;

var text_field = new TextField();
text_field.x = 0;
text_field.y = 0;
text_field.width = 500;
text_field.height = 20;
text_field .border = true;
stage.addChild(text_field);

var app = NativeApplication.nativeApplication;
text_field.text = app.publisherID;
 
■ブラウザからの要求を許可する

getApplicationVersion 関数を動作させるには、AIR アプリケーション側で設定を追加する必要があります。
 
「アプリケーション記述ファイル」(flaファイルと同じディレクトリにあるxmlファイル)をテキストエディタで開いて
<allowBrowserInvocation> を true に変更します。
 
アプリケーション記述ファイルを変更してブラウザからの要求を許可する

<allowBrowserInvocation>true</allowBrowserInvocation>
 
上記のパラメータを踏まえて使用例です。
 
成功すれば、「AIR インストーラーの設定ダイアログ」の「バージョン」に記述した文字列が取得できます。 インストールされていない場合は、null が取得できます。
 
AIRアプリケーションのバージョンを取得する

// AIRアプリケーションのアプリケーションID
var air_app_id = "com.adobe.example.InstallSample"; 

// AIRアプリケーションの発行者ID
var air_app_publish = "9EA885A8B1B37E8D7AE877C3D31473E1A2278ECC.1"; 

var text_field = new TextField();
text_field.x = 0;
text_field.y = 0;
text_field.width = 500;
text_field.height = 20;
text_field .border = true;
stage.addChild(text_field);

try{
	// インストールされているAIRアプリケーションのバージョンを調べる
	air_swf.getApplicationVersion( air_app_id, air_app_publish, AirApplicationGetVersionCB );
	function AirApplicationGetVersionCB(version){
		if(version == null){
			text_field.text = "インストールされていない";
		}else{
			text_field.text = "バージョン:" + version;
		}
	}
}catch(e){
}
 



■ブラウザから AIR アプリケーションを起動する

launchApplication() メソッドを使用するとAIRアプリケーションをブラウザから起動できます。
 
このメソッドは、ボタンイベントなどマウスがクリックされたタイミングで呼び出す必要があります。
 
(air.swf).launchApplication ( アプリケーションID , 発行者ID , パラメータ );
第01引数 AIR アプリケーションのアプリケーションIDを指定します。
第02引数 AIR アプリケーションの発行者IDを指定します。
第03引数(略可)AIR アプリケーションにパラメータを渡したい場合に配列で指定
戻り値 なし
 
AIR アプリケーションを起動する

// AIRアプリケーションのアプリケーションID
var air_app_id = "com.adobe.example.InstallSample"; 

// AIRアプリケーションの発行者ID
var air_app_publish = "9EA885A8B1B37E8D7AE877C3D31473E1A2278ECC.1"; 

// AIR アプリケーションを起動する
air_swf.launchApplication( air_app_id, air_app_publish );
 
■ブラウザからの要求を許可する

launchApplication 関数を動作させるには、AIR アプリケーション側で設定を追加する必要があります。
 
「アプリケーション記述ファイル」(flaファイルと同じディレクトリにあるxmlファイル)をテキストエディタで開いて <allowBrowserInvocation> を true に変更します。
 
アプリケーション記述ファイルを変更してブラウザからの要求を許可する

<allowBrowserInvocation>true</allowBrowserInvocation>
 




HAKUHIN's home page バナー http://hakuhin.jp/
(c) Hakuhin & 日新礼符 2002-2011 解像度1024×768以上 IE8.0以上推奨
/ 閲覧中: