是否可以获取已安装的AIR应用程序列表,可选择仅由一个供应商提供?
或者,是否可以检查是否安装了一个应用程序(通过名称/某个ID /供应商检查)(此方法将是首选)
谢谢。
答案 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是一个记录不好的类,我猜我的建议是一个死胡同。我曾经使用它一次,因为我记得,由于包的位置,我没有得到任何代码洞察,这是一个非常试错的过程。