2

インストールされている AIR アプリケーションのリストを取得することはできますか? オプションで 1 つのベンダーのみで可能ですか?

または、1 つのアプリケーション (名前/ID/ベンダーで確認) がインストールされているかどうかを確認することは可能ですか (この方法が推奨されます)

ありがとうございました。

4

3 に答える 3

3

あなたはこれを行うことができます:

        private function loadAIR():void
        {
            var loader:Loader = new Loader();
            var loaderContext:LoaderContext = new LoaderContext();
            loaderContext.applicationDomain = ApplicationDomain.currentDomain;
            loader.contentLoaderInfo.addEventListener(Event.INIT, onInit);
            loader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"), loaderContext);
        }

        private function onInit(e:Event):void
        {
            var air:Object = e.target.content;
            try
            {
              air.getApplicationVersion("appID", "publisherID", versionDetectCallback);
            }
            catch (e:Error)
            {
              trace('air not installed');
            }
        }

        private function versionDetectCallback(version:String):void
        {
            if (version == null)
            {
                trace('app not installed');
            }
            else
            {
                trace('app version ' + version + ' installed');
            }
        }
于 2010-02-19T23:00:42.720 に答える
1

これは興味深い質問です。クライアントのコンピューター上に、アドビがコンピューターにインストールされているAIRアプリのリストを保存している場所はないと思いますが、airdownloadで見つけることができる場合があります。

もう1つの適切な代替手段は、AdobeAIR2.0のコマンドライン統合機能を使用することです。これにより、OSに依存しているが、かなり単純なスクリプト(シェル、Ruby、Pythonなど)を記述して、名前で.AIRファイルのいくつかのディレクトリを再帰的にチェックできます。それらが見つからなかった場合、スタートアップアプリは次のように言うことができます。 「申し訳ありませんが、XとYの2つのアプリが見つかりません。場所を指定するか、ここからダウンロードしてください。」また、インストールパスを指定した後、他のAIRアプリがインストールされている可能性のある場所を推測できます。

または、インストールしたAIRアプリのリストを含むテキストファイルをホームディレクトリにインストールし、それを読んで次に実行する手順を理解することもできます。それはおそらく簡単でしょう。

お役に立てば幸い、ランス

于 2010-02-16T01:07:55.303 に答える
0

appID と publisherID がわかっている場合、adobe.utils.ProductManager には何か魔法のようなものがあるかもしれませんが、productManager は文書化されていないクラスであるため、私の提案は行き止まりになっていると思います。何かのために一度使用しましたが、思い出すと、パッケージの場所が原因で、コードの洞察が得られず、非常に試行錯誤のプロセスでした.

于 2010-02-19T17:30:50.177 に答える