2010-02-15 54 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的是,我要這樣的不良記錄類猜測我的建議是死路一條。我曾經使用過一次,因爲這個包的位置,我沒有得到任何代碼洞察力,這是一個非常反覆的過程。