Открыть локальный файл с помощью AIR/Flex

Я написал приложение AIR, которое загружает видео и документы с сервера. Видеоролики воспроизводятся внутри приложения, но я хотел бы, чтобы пользователь мог открыть документы в своих собственных приложениях.

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

Мой последний способ - просто скопировать файл на рабочий стол:\

Ответ 1

Только так я мог бы выяснить, как это сделать, не перемещая файл и не сообщая пользователю, чтобы он передал его браузеру.

navigateToURL(new URLRequest(File.applicationStorageDirectory.nativePath + "/courses/" + fileName));

Ответ 2

Вы можете использовать новую функцию openWithDefaultApplication();, доступную в классе File (я считаю, что она доступна только в AIR 2)

например:

var file:File = File.desktopDirectory.resolvePath(fileLocation);
file.openWithDefaultApplication();

Ответ 3

Это первый выпуск флюоресцентной рамки FluorineFx.

В рамках этой платформы предусмотрена поддержка встроенной ОС (только для Windows) для настольных приложений AIR.

Структура расширяет приложения Adobe AIR неинтрузивным способом: просто перераспределите предоставленные библиотеки с вашим приложением AIR, во время выполнения фреймворк автоматически подключится к вашему приложению.

Функции

  • Запуск собственных приложений и документов с предоставленной библиотекой apsystem
  • Сделайте скриншоты всего экрана с предоставленной библиотекой apimaging
  • Доступ к контактам Outlook из приложения Air с предоставленной библиотекой apoutlook.

http://aperture.fluorinefx.com/

Ответ 4

В настоящее время adobe не поддерживает открывающие файлы в приложениях по умолчанию. Передача его в браузер, кажется, единственный способ заставить его работать.

Однако вы можете использовать FileStream и написать небольшой html файл с некоторым javascript, который устанавливает расположение iframe в файл, а затем через 100 мс вызывает window.close(). Затем откройте этот файл в браузере.

Ответ 5

Для меня это:

var request:URLRequest = new URLRequest();
request.url = file.url;
navigateToURL(request, "_blank");

navigateToURL(file.nativePath) не работал с пути, "/users/mydirectory/..." находился вне программной среды приложения. AIR позволяет открывать некоторые протоколы с помощью navigateToURL().