Adobe AIR - список установленных приложений
Можно ли получить список установленных приложений AIR, опционально только от одного поставщика?
Или можно проверить, установлено ли одно приложение (проверено по имени / идентификатору / вендору) (этот метод предпочтительнее)
Спасибо.
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');
}
}
Это интересный вопрос. Я не думаю, что на компьютере клиента есть какие-либо места, где Adobe хранит список приложений AIR, установленных на компьютере, но вы можете найти его с помощью airdownload.
Еще одна достойная альтернатива - использовать функцию интеграции командной строки в Adobe AIR 2.0. При этом вы можете написать зависящий от ОС, но довольно простой, скрипт (shell, ruby, python и т. Д.), Который рекурсивно проверяет некоторые каталоги на наличие файлов.AIR по имени, и если они не найдены, ваше приложение запуска может сказать "Извините, мы не нашли эти два приложения: X и Y. Пожалуйста, укажите их местоположение или загрузите их здесь". И после того, как они указали путь установки, вы можете определить, где у них могут быть установлены другие приложения AIR.
Или же вы можете установить текстовый файл в их домашнем каталоге со списком установленных приложений AIR и прочитать его, чтобы выяснить, какие действия следует предпринять дальше. Это, вероятно, будет проще.
Надеюсь, это поможет, Ланс
Если вы знаете appID и publisherID, adobe.utils.ProductManager может иметь для вас что-то волшебное... но productManager - настолько плохо документированный класс, что я предполагаю, что мое предложение является тупиковым. Я использовал его один раз для чего-то, и, насколько я помню, из-за расположения пакета я не получил никакого понимания кода, и это был процесс проб и ошибок.