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

例えば、社内システムを Web アプリ化してんだけど、一部のプログラムだけはローカルマシンのリソースを使うので、それぞれのマシンに EXE ファイルとして置いてるんですわ・・・というケースはあるよね。
その時に、そのローカルマシン上のプログラムの起動も、Web アプリのメニュー上から行いたいんですわ・・・という要望もあると思う。

でも、例えば

<a href="C:\Program Files (x86)\apps\apps.exe">A業務システム起動!!</a>

なんてリンクを書いてブラウザからクリックしても(多分)EXE は起動しないよね。
したらセキュリティ的に大変なことだ。

つーことで、普通のプログラムをブラウザから起動するのはなかなか厳しいと思うんだけど、Adobe Flex の AIR アプリなら可能だ。

  1. ローカルマシン上の業務アプリ(Adobe Flex の AIR アプリ)を、allowBrowserInvocation を true にして作成。
  2. AIR アプリを起動するための Flash を作成。
  3. その 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
この辺りのサイトをどうぞ。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Flex AIR アプリを、ブラウザ上から起動する

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/2200

コメントする

このブログ記事について

このページは、shinodaが2012年9月14日 18:38に書いたブログ記事です。

ひとつ前のブログ記事は「お、ヤマトラーメン、まだやってるなあ・・・でも、味が・・・」です。

次のブログ記事は「結局、今年の獲物はノコギリクワガタ2匹だけ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら