Я написал приложение AIR, которое загружает видео и документы с сервера. Видео воспроизводятся внутри приложения, но я бы хотел, чтобы пользователь мог открывать документы в своих собственных приложениях.
Я ищу способ предложить пользователю открыть / сохранить как локальный файл, хранящийся в каталоге хранилища приложений. Я пробовал использовать классы FileReference + URLRequest, но это вызывает исключение, требующее удаленного URL-адреса.
Мое последнее средство - просто скопировать файл на свой рабочий стол: \





Единственный способ, которым я мог понять, как это сделать, не просто перемещая файл и не сообщая пользователю, - это передать его браузеру.
navigateToURL(new URLRequest(File.applicationStorageDirectory.nativePath + "/courses/" + fileName));
В настоящее время Adobe не поддерживает открытие файлов в приложениях по умолчанию. Кажется, что передача его браузеру - единственный способ заставить его работать.
Однако вы можете использовать FileStream и написать небольшой html-файл с некоторым javascript, который устанавливает расположение iframe в файле, а затем через 100 мс или около того вызывает window.close (). Затем откройте этот файл в браузере.
Это первый выпуск фреймворка FluorineFx Aperture.
Платформа обеспечивает встроенную поддержку интеграции с ОС (только Windows) для настольных приложений AIR.
Платформа расширяет приложения Adobe AIR ненавязчивым образом: просто распространите предоставленные библиотеки вместе с приложением AIR, и во время выполнения платформа автоматически подключится к вашему приложению.
Функции
Вы можете использовать новую функцию openWithDefaultApplication();, доступную в классе File (я считаю, что она доступна только в AIR 2)
например:
var file:File = File.desktopDirectory.resolvePath(fileLocation);
file.openWithDefaultApplication();
Для меня это:
var request:URLRequest = new URLRequest();
request.url = file.url;
navigateToURL(request, "_blank");
navigateToURL(file.nativePath) не работал, поскольку путь "/ users / mydirectory / ..." находился за пределами песочница приложения. AIR позволяет открывать только некоторые протоколы с помощью navigateToURL().