例えば、社内システムを Web アプリ化してんだけど、一部のプログラムだけはローカルマシンのリソースを使うので、それぞれのマシンに EXE ファイルとして置いてるんですわ・・・というケースはあるよね。
その時に、そのローカルマシン上のプログラムの起動も、Web アプリのメニュー上から行いたいんですわ・・・という要望もあると思う。
でも、例えば
なんてリンクを書いてブラウザからクリックしても(多分)EXE は起動しないよね。
したらセキュリティ的に大変なことだ。
つーことで、普通のプログラムをブラウザから起動するのはなかなか厳しいと思うんだけど、Adobe Flex の AIR アプリなら可能だ。
というこれだけだ。
上記 2 で作成した Flash をブラウザに表示して、ボタン(これは Flash の作り方次第だから、文字列でも画像でもボタンでもなんでもいいんだけど)を押せばローカルマシン上で AIR アプリが起動する。
翻訳の微妙な Adobe 本家のサイトより、
http://hakuhin.jp/air/install.html Adobe AIR プログラミング講座
このサイトが非常に参考になった。
Flash 自体は、↓こんな感じで。(ホント、これは起動させるだけのものだけど(^^;)
詳しくは、上記のサイトや、
http://help.adobe.com/ja_JP/air/build/WSfffb011ac560372f-1c6efe05128cca667e7-8000.html AIR.SWF ブラウザー API
この辺りのサイトをどうぞ。
その時に、そのローカルマシン上のプログラムの起動も、Web アプリのメニュー上から行いたいんですわ・・・という要望もあると思う。
でも、例えば
<a href="C:\Program Files (x86)\apps\apps.exe">A業務システム起動!!</a>
なんてリンクを書いてブラウザからクリックしても(多分)EXE は起動しないよね。
したらセキュリティ的に大変なことだ。
つーことで、普通のプログラムをブラウザから起動するのはなかなか厳しいと思うんだけど、Adobe Flex の AIR アプリなら可能だ。
- ローカルマシン上の業務アプリ(Adobe Flex の AIR アプリ)を、allowBrowserInvocation を true にして作成。
- AIR アプリを起動するための Flash を作成。
- その Flash をセットした HTML を作成。(Flash Builder でリリースビルドのエクスポートをしたら、自動で作成されるけどね。それを自分のサイトにあったデザインに修正すれば良し)
というこれだけだ。
上記 2 で作成した Flash をブラウザに表示して、ボタン(これは Flash の作り方次第だから、文字列でも画像でもボタンでもなんでもいいんだけど)を押せばローカルマシン上で AIR アプリが起動する。
翻訳の微妙な Adobe 本家のサイトより、
http://hakuhin.jp/air/install.html Adobe AIR プログラミング講座
このサイトが非常に参考になった。
Flash 自体は、↓こんな感じで。(ホント、これは起動させるだけのものだけど(^^;)
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="1024" minHeight="720" initialize="initProc()">
<fx:Script>
<![CDATA[
public var air_app_id:String = "hogehoge.app"; // アプリケーションID
public var air_app_publish:String = "";
public var air_swf:Object = null;
private function initProc():void {
var airSWFLoader:Loader = new Loader(); //Used to load the SWF
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.applicationDomain = ApplicationDomain.currentDomain;
airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, onInit);
airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"),
loaderContext);
}
private function onInit(e:Event):void {
air_swf = e.target.content;
air_swf.getApplicationVersion(air_app_id, air_app_publish, function(version:String):void {
if(version == null) {
// アプリケーションがインストールされてない時の処理<省略>
}
});
}
private function airAppStart():void{
// AIR アプリケーションを起動する
air_swf.launchApplication(air_app_id, air_app_publish);
}
]]>
</fx:Script>
<s:Button x="60" y="58" label="起動" click="airAppStart()"/>
</s:Application>
詳しくは、上記のサイトや、
http://help.adobe.com/ja_JP/air/build/WSfffb011ac560372f-1c6efe05128cca667e7-8000.html AIR.SWF ブラウザー API
この辺りのサイトをどうぞ。