2010-02-15 56 views
2

是否可以获取已安装的AIR应用程序的列表(可选地仅由一个供应商提供)?Adob​​e AIR - 列出已安装的应用程序

或者,是否有可能来检查,是否是一个应用程序安装(按名称/ ID一些/供应商的检查)(此方法将是首选)

谢谢。

+0

你在Mac上?这是你自己吗?我可以考虑如何使用Ruby来检查Applications目录,但我认为您可以直接使用它来检查已安装的AIR应用程序。 –

+0

不幸的是,这不仅仅是为了我自己...我准备了几个小应用程序。如果有人使用5个以上的应用程序(小的“一件事”应用程序),似乎有5个图标(或更多)的图标是疯狂的......所以我尽管我会做一个小创业应用程序。 –

回答

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

James在这里使用了'air.swf'上的一些Adobe文档:http://livedocs.adobe.com/flex/3/html/help.html?content=distributing_apps_3.html –

+1

太棒了! –

+0

很酷,迫不及待地尝试一下。 –

1

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

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

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

希望帮助, 兰斯

+0

文本文件看起来像可行的选项 - 但我不知道,如果没有其他。我想我会试着用改编的搜索来试用Google,但是感谢你的想法。 –

0

如果你知道的appid和的publisherId,adobe.utils.ProductManager可能有一些神奇的你...但是productManager的是,我要这样的不良记录类猜测我的建议是死路一条。我曾经使用过一次,因为这个包的位置,我没有得到任何代码洞察力,这是一个非常反复的过程。