Откройте локальный файл с помощью AIR / Flex
-
08-06-2019 - |
Вопрос
Я написал приложение AIR, которое загружает видео и документы с сервера.Видео воспроизводятся внутри приложения, но я бы хотел, чтобы пользователь мог открывать документы в своих собственных приложениях.
Я ищу способ предложить пользователю открыть / Сохранить как в локальном файле, хранящемся в каталоге хранилища приложений.Я пробовал использовать классы FileReference + URLRequest, но это выдает исключение, что ему нужен удаленный URL.
Мое последнее средство - просто скопировать файл на их рабочий стол :\
Решение 2
Единственный способ, которым я мог понять, как это сделать, не просто перемещая файл и не сообщая об этом пользователю, - это передать его браузеру.
navigateToURL(new URLRequest(File.applicationStorageDirectory.nativePath + "/courses/" + fileName));
Другие советы
Вы можете использовать новый openWithDefaultApplication();
функция, доступная в классе File (я полагаю, что она доступна только в AIR 2)
например:
var file:File = File.desktopDirectory.resolvePath(fileLocation);
file.openWithDefaultApplication();
Это первый выпуск платформы FluorineFx Aperture framework.
Платформа обеспечивает встроенную поддержку интеграции с операционной системой (только для Windows) для настольных приложений AIR.
Платформа расширяет возможности приложений Adobe AIR ненавязчивым образом:просто распространите предоставленные библиотеки вместе с вашим приложением AIR, и во время выполнения фреймворк автоматически подключится к вашему приложению.
Характеристики
- Запускайте собственные приложения и документы с помощью предоставленной библиотеки apsystem
- Сделайте скриншоты всего экрана с помощью прилагаемой библиотеки apimaging
- Доступ к контактам Outlook осуществляется из приложения Air с помощью прилагаемой библиотеки apoutlook
В настоящее время Adobe не поддерживает открытие файлов в своих приложениях по умолчанию.Передача его в браузер, по-видимому, единственный способ заставить его работать.
Однако вы могли бы использовать FileStream и написать небольшой html-файл с некоторым javascript, который устанавливает местоположение iframe в файле, а затем примерно через 100 мс вызывает window.close().Затем откройте этот файл в браузере.
Для меня это:
var request:URLRequest = new URLRequest();
request.url = file.url;
navigateToURL(request, "_blank");
Тот Самый navigateToURL(file.nativePath)
не сработало, так как путь "/users/mydirectory / ..." находился за пределами песочница приложений.AIR позволяет открывать только некоторые протоколы с помощью navigateToURL()
.