【问题标题】:Adobe AIR - listing installed applicationsAdobe AIR - 列出已安装的应用程序
【发布时间】:2011-01-16 23:05:31
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • 您在使用 Mac 吗?这是给你自己的吗?我可以想到如何使用 Ruby 来检查 Applications 目录,但我认为您不能直接使用 AIR 应用程序来检查已安装的 AIR 应用程序。
  • 不幸的是,这不仅仅是为了我自己……我准备了一些小应用程序。如果有人使用超过 5 个应用程序(小型“做一件事”应用程序),拥有 5 个图标(或更多)似乎很疯狂......所以我想我会做一个小的启动应用程序。

标签: apache-flex air installed-applications


【解决方案1】:

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

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

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

希望对您有所帮助, 兰斯

【讨论】:

  • 文本文件似乎是可行的选择 - 但是,我不知道是否没有其他选项。我想我会尝试用重新措辞搜索的谷歌,不过谢谢你的想法。
【解决方案2】:

你可以这样做:

        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');
            }
        }

【讨论】:

【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多