2

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

或者,是否可以检查是否安装了一个应用程序(按名称/某些 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

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

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

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

希望有帮助,兰斯

于 2010-02-16T01:07:55.303 回答
0

如果你知道 appID 和 publisherID,adobe.utils.ProductManager 可能对你有一些神奇的东西......但是 productManager 是一个文档记录如此糟糕的类,我猜我的建议是死胡同。我曾经用它做某事,我记得,由于包的位置,我没有得到任何代码洞察力,这是一个非常反复试验的过程。

于 2010-02-19T17:30:50.177 回答