Adobe AIR - 列出已安装的应用程序

时间:2010-02-15 11:43:12

标签: flex air installed-applications

是否可以获取已安装的AIR应用程序列表,可选择仅由一个供应商提供?

或者,是否可以检查是否安装了一个应用程序(通过名称/某个ID /供应商检查)(此方法将是首选)

谢谢。

3 个答案:

答案 0 :(得分: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');
            }
        }

答案 1 :(得分:1)

这是一个有趣的问题。我认为客户端的计算机上没有任何地方Adobe存储计算机上安装的AIR应用程序列表,但您可以通过airdownload找到它。

另一个不错的选择是使用Adobe AIR 2.0's Command Line Integration功能。有了这个,您可以编写一个依赖于操作系统但相当简单的脚本(shell,ruby,python等),它按名称递归检查.AIR文件的某些目录,如果找不到它们,您的启动应用程序可以说“抱歉,我们还没有找到这两个应用程序:X和Y.请指定其位置或在此处下载”。在他们指定安装路径后,您可以推断出他们可能安装了其他AIR应用程序的位置。

或者您可以在其主目录中安装一个文本文件,其中包含已安装的AIR应用程序列表,并阅读该文件以确定接下来应采取的步骤。那可能会更容易。

希望有所帮助, 兰斯

答案 2 :(得分:0)

如果你知道appID和publisherID,adobe.utils.ProductManager可能会有一些神奇的东西......但是productManager是一个记录不好的类,我猜我的建议是一个死胡同。我曾经使用它一次,因为我记得,由于包的位置,我没有得到任何代码洞察,这是一个非常试错的过程。