문제
서버에서 비디오와 문서를 다운로드하는 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 프레임워크의 첫 번째 릴리스입니다.
프레임워크는 AIR 데스크톱 응용 프로그램에 대한 기본 OS 통합(Windows 전용) 지원을 제공합니다.
프레임워크는 방해가 되지 않는 방식으로 Adobe AIR 애플리케이션을 확장합니다.제공된 라이브러리를 AIR 애플리케이션과 함께 재배포하기만 하면 런타임 시 프레임워크가 자동으로 애플리케이션에 연결됩니다.
특징
- 제공된 apsystem 라이브러리를 사용하여 기본 애플리케이션 및 문서 실행
- 제공된 apimaging 라이브러리로 전체 화면의 스크린샷을 찍으세요.
- 제공된 apoutlook 라이브러리를 사용하여 Air 애플리케이션에서 Outlook 연락처에 액세스하세요.
현재 Adobe는 기본 응용 프로그램에서 파일 열기를 지원하지 않습니다.브라우저에 전달하는 것이 작동하도록 하는 유일한 방법인 것 같습니다.
그러나 FileStream을 사용하고 iframe의 위치를 파일로 설정하는 일부 자바스크립트로 작은 html 파일을 작성한 다음 100ms 정도 후에 window.close()를 호출할 수 있습니다.그런 다음 브라우저에서 해당 파일을 엽니다.
나에게는 다음과 같다:
var request:URLRequest = new URLRequest();
request.url = file.url;
navigateToURL(request, "_blank");
그만큼 navigateToURL(file.nativePath)
"/users/mydirectory/..." 경로가 외부에 있으므로 작동하지 않았습니다. 애플리케이션 샌드박스.AIR에서는 다음을 사용하여 일부 프로토콜만 열 수 있습니다. navigateToURL()
.