웹 페이지에서 AIR 응용 프로그램 설치 및 실행



연속 설치 기능을 사용하면 웹 페이지에 SWF 파일을 포함할 수 있습니다. 이렇게 하면 사용자가 브라우저에서 AIR 응용 프로그램을 설치할 수 있습니다. 런타임이 설치되지 않은 경우 연속 설치 기능이 런타임을 설치합니다. 연속 설치 기능을 사용하여 사용자는 AIR 파일을 자신의 컴퓨터에 저장하지 않고 AIR 응용 프로그램을 설치할 수 있습니다. 연속 설치 기능을 쉽게 사용할 수 있게 해주는 badge.swf 파일이 AIR SDK에 포함되어 있습니다. 자세한 내용은 badge.swf 파일을 사용하여 AIR 응용 프로그램 설치를 참조하십시오.

연속 설치 기능을 사용하는 방법에 대한 데모는 웹을 통한 AIR 응용 프로그램 배포(http://www.adobe.com/go/learn_air_qs_seamless_install_kr) 퀵 스타트 샘플 기사를 참조하십시오.

연속 설치 badge.swf 사용자 정의

SDK와 함께 제공되는 badge.swf 파일을 사용하지 않고 고유 SWF 파일을 만들어 브라우저 페이지에 사용할 수도 있습니다. 사용자 정의 SWF 파일은 다음과 같은 방법으로 런타임과 상호 작용할 수 있습니다.

이러한 모든 기능은 adobe.com에 있는 SWF 파일(air.swf)의 API를 호출하여 제공됩니다. 이 단원에서는 badge.swf 파일을 사용하고 사용자 정의하는 방법과 사용자 고유의 SWF 파일에서 air.swf API를 호출하는 방법에 대해 설명합니다.

브라우저에서 실행되는 SWF 파일은 LocalConnection 클래스를 사용하여 실행 중인 AIR 응용 프로그램과 통신할 수도 있습니다. 자세한 내용은 응용 프로그램 간 통신을 참조하십시오.

중요: 이 단원에 설명된 기능 및 air.swf 파일의 API를 사용하려면 최종 사용자의 Windows 또는 Mac OS 웹 브라우저에 Adobe® Flash® Player 9 업데이트 3이 설치되어 있어야 합니다. Linux에서 연속 설치 기능을 사용하려면 Flash Player 10 버전 10,0,12,36 이상이 필요합니다. 코드를 작성하여 Flash Player의 설치된 버전을 확인하고 필요한 버전의 Flash Player가 설치되어 있지 않은 경우 사용자에게 대체 인터페이스를 제공할 수 있습니다. 예를 들어 이전 버전의 Flash Player가 설치되어 있는 경우 badge.swf 파일이나 air.swf API를 사용하여 응용 프로그램을 설치하는 대신 다운로드된 버전의 AIR 파일에 대한 링크를 제공할 수 있습니다.

badge.swf 파일을 사용하여 AIR 응용 프로그램 설치

연속 설치 기능을 쉽게 사용할 수 있게 해주는 badge.swf 파일이 AIR SDK에 포함되어 있습니다. badge.swf는 웹 페이지의 링크에서 런타임 및 AIR 응용 프로그램을 설치할 수 있습니다. 웹 사이트에 배포할 수 있도록 badge.swf 파일 및 소스 코드가 제공됩니다.

이 단원의 지침에서는 Adobe에서 제공하는 badge.swf 파일의 매개 변수를 설정하는 방법에 대한 정보를 제공합니다. 또한 사용자 정의할 수 있는 badge.swf 파일에 대한 소스 코드를 제공합니다.

웹 페이지에 badge.swf 파일 포함

  1. AIR SDK의 samples/badge 디렉토리에 제공되는 다음 파일을 찾아 웹 서버에 추가합니다.

    • badge.swf

    • default_badge.html

    • AC_RunActiveContent.js

  2. 텍스트 편집기에서 default_badge.html 페이지를 엽니다.

  3. default_badge.html 페이지의 AC_FL_RunContent() JavaScript 함수에서 다음에 대해 FlashVars 매개 변수 정의를 조정합니다.

    매개 변수

    설명

    appname

    런타임이 설치되어 있지 않을 때 SWF 파일에서 표시하는 응용 프로그램의 이름입니다.

    appurl

    (필수). 다운로드할 AIR 파일의 URL입니다. 상대 URL이 아닌 절대 URL을 사용해야 합니다.

    airversion

    (필수). 런타임 버전 1.0의 경우 이 값을 1.0으로 설정합니다.

    imageurl

    배지에 표시할 이미지의 URL(선택 사항)입니다.

    buttoncolor

    다운로드 버튼의 색입니다(FFCC00과 같은 16진수 값으로 지정).

    messagecolor

    런타임이 설치되어 있지 않을 때 버튼 아래에 표시되는 텍스트 메시지의 색입니다(FFCC00과 같은 16진수 값으로 지정).

  4. badge.swf 파일의 최소 크기는 217 x 180픽셀입니다. 필요에 맞게 AC_FL_RunContent() 함수의 widthheight 매개 변수의 값을 조정합니다.

  5. default_badge.html 파일의 이름을 변경하고 필요에 맞게 코드를 조정하거나 다른 HTML 페이지에 포함합니다.

badge.swf 파일을 편집하여 다시 컴파일할 수도 있습니다. 자세한 내용은 badge.swf 파일 수정을 참조하십시오.

웹 페이지의 연속 설치 링크에서 AIR 응용 프로그램 설치

페이지에 연속 설치 링크가 추가되면 사용자는 SWF 파일의 링크를 클릭하여 AIR 응용 프로그램을 설치할 수 있습니다.

  1. Flash Player 버전 9 업데이트 3 이상(Windows 및 Mac OS) 또는 버전 10(Linux)이 설치된 웹 브라우저에서 HTML 페이지로 이동합니다.

  2. 웹 페이지에서 badge.swf 파일의 링크를 클릭합니다.

    • 런타임을 설치한 경우 다음 단계로 건너뜁니다.

    • 런타임을 설치하지 않은 경우 런타임을 설치할 것인지 여부를 묻는 대화 상자가 표시됩니다. 런타임을 설치(Adobe AIR 설치 참조)하고 다음 단계를 진행합니다.

  3. [설치] 윈도우에서 기본 설정을 선택한 상태로 두고 [계속]을 클릭합니다.

    Windows 컴퓨터에서 AIR은 자동으로 다음을 수행합니다.

    • 응용 프로그램을 c:\Program Files\에 설치

    • 응용 프로그램에 대한 바탕 화면 단축키 만들기

    • [시작] 메뉴 단축키 만들기

    • [제어판]의 [프로그램 추가/제거]에서 응용 프로그램에 대한 항목 추가

    Mac OS에서 설치 프로그램은 응용 프로그램을 Applications 디렉토리(예: Mac OS의 /Applications 디렉토리)에 추가합니다.

    Linux 컴퓨터에서 AIR은 자동으로 다음을 수행합니다.

    • /opt에 응용 프로그램을 설치합니다.

    • 응용 프로그램에 대한 바탕 화면 단축키 만들기

    • [시작] 메뉴 단축키 만들기

    • 시스템 패키지 관리자에서 응용 프로그램에 대한 항목을 추가합니다.

  4. 원하는 옵션을 선택한 다음 [설치] 버튼을 클릭합니다.

  5. 설치가 완료되면 [완료]를 클릭합니다.

badge.swf 파일 수정

AIR SDK는 badge.swf 파일의 소스 파일을 제공합니다. 이러한 파일은 SDK의 samples/badge 폴더에 포함되어 있습니다.

소스 파일

설명

badge.fla

badge.swf 파일을 컴파일하는 데 사용되는 소스 Flash 파일입니다. badge.fla 파일은 SWF 9 파일(Flash Player에 로드할 수 있는 파일)로 컴파일됩니다.

AIRBadge.as

basdge.fla 파일에 사용되는 기본 클래스를 정의하는 ActionScript 3.0 클래스입니다.

Flash CS3 또는 Flash CS4를 사용하여 badge.fla 파일의 시각 인터페이스를 다시 설계할 수 있습니다.

AIRBadge 클래스에 정의되어 있는 AIRBadge() 생성자 함수는 http://airdownload.adobe.com/air/browserapi/air.swf에 있는 air.swf 파일을 로드합니다. air.swf 파일에는 연속 설치 기능을 사용하기 위한 코드가 포함됩니다.

air.swf 파일이 성공적으로 로드되면 AIRBadge 클래스의 onInit() 메서드가 호출됩니다.

private function onInit(e:Event):void { 
    _air = e.target.content; 
    switch (_air.getStatus()) { 
        case "installed" : 
            root.statusMessage.text = ""; 
            break; 
        case "available" : 
            if (_appName && _appName.length > 0) { 
                root.statusMessage.htmlText = "<p align='center'><font color='#"  
                        + _messageColor + "'>In order to run " + _appName +  
                        ", this installer will also set up Adobe® AIR™.</font></p>"; 
            } else { 
                root.statusMessage.htmlText = "<p align='center'><font color='#"  
                        + _messageColor + "'>In order to run this application, " 
                        + "this installer will also set up Adobe® AIR™.</font></p>"; 
            } 
            break; 
        case "unavailable" : 
            root.statusMessage.htmlText = "<p align='center'><font color='#"  
                        + _messageColor  
                        + "'>Adobe® AIR™ is not available for your system.</font></p>"; 
            root.buttonBg_mc.enabled = false; 
            break; 
    } 
}

이 코드는 로드된 air.swf 파일의 기본 클래스에 전역 _air 변수를 설정합니다. 이 클래스에는 badge.swf 파일이 연속 설치 기능을 호출하기 위해 액세스하는 다음 공용 메서드가 포함됩니다.

메서드

설명

getStatus()

컴퓨터에 런타임이 설치되어 있는지 또는 런타임을 설치할 수 있는지 여부를 확인합니다. 자세한 내용은 런타임이 설치되어 있는지 확인을 참조하십시오.

installApplication()

사용자의 컴퓨터에 지정한 응용 프로그램을 설치합니다. 자세한 내용은 브라우저에서 AIR 응용 프로그램 설치를 참조하십시오.

  • url - URL을 정의하는 문자열입니다. 상대 URL 경로가 아닌 절대 URL 경로를 사용해야 합니다.

  • runtimeVersion - 설치할 응용 프로그램에 필요한 런타임의 버전을 나타내는 문자열(예: "1.0.M6")입니다.

  • arguments - 설치 시 시작되는 경우 응용 프로그램에 전달할 인수입니다. 응용 프로그램 설명자 파일에서 allowBrowserInvocation 요소가 true로 설정되어 있는 경우 설치 시 응용 프로그램이 시작됩니다. 응용 프로그램 설명자 파일에 대한 자세한 내용은 AIR 응용 프로그램 속성 설정을 참조하십시오. 사용자가 설치 시 시작 기능을 선택하여 브라우저에서 연속 설치의 결과로 응용 프로그램이 시작된 경우 응용 프로그램의 NativeApplication 객체는 인수가 전달된 경우에만 BrowserInvokeEvent 객체를 전달합니다. 응용 프로그램에 전달하는 데이터의 보안 문제를 고려하십시오. 자세한 내용은 브라우저에서 설치된 AIR 응용 프로그램 시작을 참조하십시오.

urlruntimeVersion의 설정은 컨테이너 HTML 페이지의 FlashVars 설정을 통해 SWF 파일에 전달됩니다.

설치 시 응용 프로그램이 자동으로 시작되는 경우 LocalConnection 통신을 사용하여 badge.swf 파일 호출 시 설치된 응용 프로그램이 이 파일과 통신하도록 만들 수 있습니다. 자세한 내용은 응용 프로그램 간 통신을 참조하십시오.

응용 프로그램이 설치되어 있는지 여부를 확인하기 위해 air.swf 파일의 getApplicationVersion() 메서드를 호출할 수도 있습니다. 응용 프로그램 설치 프로세스가 시작되기 전이나 설치가 시작된 후에 이 메서드를 호출할 수 있습니다. 자세한 내용은 AIR 응용 프로그램이 설치되어 있는지 웹 페이지에서 확인을 참조하십시오.

air.swf 파일 로드

브라우저의 웹 페이지에서 런타임 및 AIR 응용 프로그램과 상호 작용하기 위해 air.swf 파일의 API를 사용하는 고유 SWF 파일을 만들 수 있습니다. air.swf 파일은 http://airdownload.adobe.com/air/browserapi/air.swf에 있습니다. SWF 파일에서 air.swf API를 참조하려면 SWF 파일과 같은 응용 프로그램 도메인에 air.swf 파일을 로드합니다. 다음 코드에서는 로드하는 SWF 파일의 응용 프로그램 도메인에 air.swf 파일을 로드하는 예제를 보여 줍니다.

var airSWF:Object; // This is the reference to the main class of air.swf 
var airSWFLoader:Loader = new Loader(); // Used to load the SWF 
var loaderContext:LoaderContext = new LoaderContext();  
                                // Used to set the application domain  
 
loaderContext.applicationDomain = ApplicationDomain.currentDomain; 
 
airSWFLoader.contentLoaderInfo.addEventListener(Event.INIT, onInit); 
airSWFLoader.load(new URLRequest("http://airdownload.adobe.com/air/browserapi/air.swf"),  
                    loaderContext); 
 
function onInit(e:Event):void  
{ 
    airSWF = e.target.content; 
}

air.swf 파일이 로드되면(Loader 객체의 contentLoaderInfo 객체가 init 이벤트를 전달하면) 모든 air.swf API를 호출할 수 있습니다. 이러한 API에 대해서는 다음 단원에서 설명합니다.

참고: AIR SDK와 함께 제공되는 badge.swf 파일은 air.swf 파일을 자동으로 로드합니다. badge.swf 파일을 사용하여 AIR 응용 프로그램 설치를 참조하십시오. 이 단원의 지침은 air.swf 파일을 로드하는 고유 SWF 파일을 만드는 데 적용됩니다.

런타임이 설치되어 있는지 확인

SWF 파일은 http://airdownload.adobe.com/air/browserapi/air.swf에서 로드된 air.swf 파일의 getStatus() 메서드를 호출하여 런타임이 설치되어 있는지 여부를 확인할 수 있습니다. 자세한 내용은 air.swf 파일 로드를 참조하십시오.

air.swf 파일이 로드되면 SWF 파일은 air.swf 파일의 getStatus() 메서드를 다음과 같이 호출할 수 있습니다.

var status:String = airSWF.getStatus();

getStatus() 메서드는 컴퓨터에 있는 런타임의 상태에 따라 다음 문자열 값 중 하나를 반환합니다.

문자열 값

설명

"available"

런타임을 이 컴퓨터에 설치할 수 있지만 현재 설치되어 있지 않습니다.

"unavailable"

이 컴퓨터에 런타임을 설치할 수 없습니다.

"installed"

이 컴퓨터에 런타임이 설치되어 있습니다.

필요한 버전의 Flash Player, 즉 버전 9 업데이트 3 이상(Windows 및 Mac OS) 또는 버전 10(Linux)이 브라우저에 설치되어 있지 않은 경우 getStatus() 메서드에서 오류가 발생합니다.

AIR 응용 프로그램이 설치되어 있는지 웹 페이지에서 확인

SWF 파일은 http://airdownload.adobe.com/air/browserapi/air.swf에서 로드된 air.swf 파일의 getApplicationVersion() 메서드를 호출하여 응용 프로그램 ID와 배급자 ID가 일치하는 AIR 응용 프로그램이 설치되어 있는지 여부를 확인할 수 있습니다. 자세한 내용은 air.swf 파일 로드를 참조하십시오.

air.swf 파일이 로드되면 SWF 파일은 air.swf 파일의 getApplicationVersion() 메서드를 다음과 같이 호출할 수 있습니다.

var appID:String = "com.example.air.myTestApplication"; 
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; 
airSWF.getApplicationVersion(appID, pubID, versionDetectCallback); 
 
function versionDetectCallback(version:String):void 
{ 
    if (version == null) 
    { 
        trace("Not installed."); 
        // Take appropriate actions. For instance, present the user with 
        // an option to install the application. 
    } 
    else 
    { 
        trace("Version", version, "installed."); 
        // Take appropriate actions. For instance, enable the 
        // user interface to launch the application. 
    } 
}

getApplicationVersiom() 메서드의 매개 변수는 다음과 같습니다.

매개 변수

설명

appID

응용 프로그램의 응용 프로그램 ID입니다. 자세한 내용은 응용 프로그램 ID 정의를 참조하십시오.

pubID

응용 프로그램의 배급자 ID입니다. 자세한 내용은 AIR 배급자 ID를 참조하십시오.

콜백

핸들러 함수의 역할을 하는 콜백 함수입니다. getApplicationVersion() 메서드는 비동기적으로 작동하며 설치된 버전을 검색하거나 설치된 버전이 없음을 확인하면 이 콜백 메서드가 호출됩니다. 콜백 메서드 정의에는 설치된 응용 프로그램의 버전 문자열로 설정된 문자열인 매개 변수가 하나 포함되어야 합니다. 응용 프로그램이 설치되지 않은 경우 이전 코드 샘플에 설명된 대로 null 값이 함수에 전달됩니다.

필요한 버전의 Flash Player, 즉 버전 9 업데이트 3 이상(Windows 및 Mac OS) 또는 버전 10(Linux)이 브라우저에 설치되어 있지 않은 경우 getApplicationVersion() 메서드에서 오류가 발생합니다.

브라우저에서 AIR 응용 프로그램 설치

SWF 파일은 http://airdownload.adobe.com/air/browserapi/air.swf에서 로드된 air.swf 파일의 installApplication() 메서드를 호출하여 AIR 응용 프로그램을 설치할 수 있습니다. 자세한 내용은 air.swf 파일 로드를 참조하십시오.

air.swf 파일이 로드되면 SWF 파일은 air.swf 파일의 installApplication() 메서드를 다음과 같이 호출할 수 있습니다.

var url:String = "http://www.example.com/myApplication.air"; 
var runtimeVersion:String = "1.0"; 
var arguments:Array = ["launchFromBrowser"]; // Optional 
airSWF.installApplication(url, runtimeVersion, arguments); 

installApplication() 메서드는 사용자의 컴퓨터에 지정한 응용 프로그램을 설치합니다. 이 메서드의 매개 변수는 다음과 같습니다.

매개 변수

설명

url

설치할 AIR 파일의 URL을 정의하는 문자열입니다. 상대 URL 경로가 아닌 절대 URL 경로를 사용해야 합니다.

runtimeVersion

설치할 응용 프로그램에 필요한 런타임의 버전을 나타내는 문자열(예: "1.0")입니다.

arguments

설치 시 시작되는 경우 응용 프로그램에 전달할 인수의 배열입니다. 영숫자 문자만 인수로 인식됩니다. 다른 값을 전달해야 할 경우 인코딩 스킴을 사용하십시오.

응용 프로그램 설명자 파일에서 allowBrowserInvocation 요소가 true로 설정되어 있는 경우 설치 시 응용 프로그램이 시작됩니다. 응용 프로그램 설명자 파일에 대한 자세한 내용은 AIR 응용 프로그램 속성 설정을 참조하십시오. 사용자가 설치 시 시작 기능을 선택하여 브라우저에서 연속 설치의 결과로 응용 프로그램이 시작된 경우 응용 프로그램의 NativeApplication 객체는 인수가 전달된 경우에만 BrowserInvokeEvent 객체를 전달합니다. 자세한 내용은 브라우저에서 설치된 AIR 응용 프로그램 시작을 참조하십시오.

마우스 클릭과 같은 사용자 이벤트에 대한 이벤트 핸들러에서 호출될 때만 installApplication() 메서드가 작동할 수 있습니다.

필요한 버전의 Flash Player, 즉 버전 9 업데이트 3 이상(Windows 및 Mac OS) 또는 버전 10(Linux)이 브라우저에 설치되어 있지 않은 경우 installApplication() 메서드에서 오류가 발생합니다.

Mac OS에서는 업데이트된 버전의 응용 프로그램을 설치하려면 사용자에게 응용 프로그램 디렉토리에 설치할 수 있는 적절한 시스템 권한이 필요하며 응용 프로그램이 런타임을 업데이트하는 경우 관리 권한이 필요합니다. Windows에서는 사용자에게 관리 권한이 필요합니다.

응용 프로그램이 설치되어 있는지 여부를 확인하기 위해 air.swf 파일의 getApplicationVersion() 메서드를 호출할 수도 있습니다. 응용 프로그램 설치 프로세스가 시작되기 전이나 설치가 시작된 후에 이 메서드를 호출할 수 있습니다. 자세한 내용은 AIR 응용 프로그램이 설치되어 있는지 웹 페이지에서 확인을 참조하십시오. 응용 프로그램이 실행되면 LocalConnection 클래스를 사용하여 브라우저의 SWF 내용과 통신할 수 있습니다. 자세한 내용은 응용 프로그램 간 통신을 참조하십시오.

브라우저에서 설치된 AIR 응용 프로그램 시작

브라우저 호출 기능을 사용하여 대상 응용 프로그램이 브라우저에서 시작되게 하려면 해당 응용 프로그램 설명자 파일에 다음 설정이 포함되어야 합니다.

<allowBrowserInvocation>true</allowBrowserInvocation>

응용 프로그램 설명자 파일에 대한 자세한 내용은 AIR 응용 프로그램 속성 설정을 참조하십시오.

브라우저의 SWF 파일은 http://airdownload.adobe.com/air/browserapi/air.swf에서 로드된 air.swf 파일의 launchApplication() 메서드를 호출하여 AIR 응용 프로그램을 시작할 수 있습니다. 자세한 내용은 air.swf 파일 로드를 참조하십시오.

air.swf 파일이 로드되면 SWF 파일은 air.swf 파일의 launchApplication() 메서드를 다음과 같이 호출할 수 있습니다.

var appID:String = "com.example.air.myTestApplication"; 
var pubID:String = "02D88EEED35F84C264A183921344EEA353A629FD.1"; 
var arguments:Array = ["launchFromBrowser"]; // Optional 
airSWF.launchApplication(appID, pubID, arguments);

launchApplication() 메서드는 사용자 인터페이스 SWF 파일의 응용 프로그램 도메인에 로드되는 air.swf 파일의 최상위 수준에 정의되어 있습니다. 이 메서드를 호출하면 응용 프로그램이 설치되어 있으며 응용 프로그램 설명자 파일의 allowBrowserInvocation 설정을 통해 브라우저 호출이 허용된 경우 AIR이 지정한 응용 프로그램을 시작합니다. 이 메서드의 매개 변수는 다음과 같습니다.

매개 변수

설명

appID

시작할 응용 프로그램의 응용 프로그램 ID입니다. 자세한 내용은 응용 프로그램 ID 정의를 참조하십시오.

pubID

시작할 응용 프로그램의 배급자 ID입니다. 자세한 내용은 AIR 배급자 ID를 참조하십시오.

arguments

응용 프로그램에 전달할 인수의 배열입니다. 응용 프로그램의 NativeApplication 객체는 arguments 속성이 이 배열로 설정된 BrowserInvokeEvent 이벤트를 전달합니다. 영숫자 문자만 인수로 인식됩니다. 다른 값을 전달해야 할 경우 인코딩 스킴을 사용하십시오.

마우스 클릭과 같은 사용자 이벤트에 대한 이벤트 핸들러에서 호출될 때만 launchApplication() 메서드가 작동할 수 있습니다.

필요한 버전의 Flash Player, 즉 버전 9 업데이트 3 이상(Windows 및 Mac OS) 또는 버전 10(Linux)이 브라우저에 설치되어 있지 않은 경우 launchApplication() 메서드에서 오류가 발생합니다.

응용 프로그램 설명자 파일에서 allowBrowserInvocation 요소가 false로 설정된 경우 launchApplication() 메서드를 호출해도 효과가 없습니다.

응용 프로그램을 시작하는 사용자 인터페이스를 표시하기 전에 air.swf 파일에서 getApplicationVersion() 메서드를 호출할 수 있습니다. 자세한 내용은 AIR 응용 프로그램이 설치되어 있는지 웹 페이지에서 확인을 참조하십시오.

브라우저 호출 기능을 통해 응용 프로그램을 호출하면 응용 프로그램의 NativeApplication 객체가 BrowserInvokeEvent 객체를 전달합니다. 자세한 내용은 브라우저 호출을 참조하십시오.

브라우저 호출 기능을 사용하는 경우 브라우저 호출에 설명된 보안 문제를 고려해야 합니다.

응용 프로그램이 실행되면 LocalConnection 클래스를 사용하여 브라우저의 SWF 내용과 통신할 수 있습니다. 자세한 내용은 응용 프로그램 간 통신을 참조하십시오.