

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 임베디드 Amazon WorkSpaces 애플리케이션 스트리밍 세션의 상수, 함수 및 이벤트
<a name="constants-functions-events-embedded-sessions"></a>

다음 주제에서는 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 구성하는 데 사용할 수 있는 상수, 함수 및 이벤트에 대한 참조 정보를 제공합니다.

**Topics**
+ [`HIDDEN_ELEMENTS` 작업](#constants-hidden-elements)
+ [`AppStream.Embed` 객체에 대한 함수](#functions-embed-object)
+ [임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트](#events-embedded-streaming-sessions)
+ [이벤트 리스너 추가 및 임베디드 WorkSpaces 애플리케이션 스트리밍 세션 종료 예제](#examples-add-event-listeners-end-embedded-streaming-session)

임베디드 WorkSpaces Applications 스트리밍 세션이 초기화되면 다음 WorkSpaces Applications 사용자 인터페이스 요소를 `HIDDEN_ELEMENTS` 구성 옵션으로 전달할 수 있습니다.

## `HIDDEN_ELEMENTS` 작업
<a name="constants-hidden-elements"></a>

임베디드 WorkSpaces 애플리케이션 스트리밍 세션이 초기화되면 다음 WorkSpaces 애플리케이션 사용자 인터페이스 요소를 `HIDDEN_ELEMENTS` 구성 옵션으로 상수로 전달할 수 있습니다.

```
AppStream.Embed.Elements.TOOLBAR
AppStream.Embed.Elements.FULLSCREEN_BUTTON
AppStream.Embed.Elements.END_SESSION_BUTTON
AppStream.Embed.Elements.TOOLBAR
AppStream.Embed.Elements.CATALOG_BUTTON
AppStream.Embed.Elements.WINDOW_SWITCHER_BUTTON
AppStream.Embed.Elements.FILES_BUTTON
AppStream.Embed.Elements.CLIPBOARD_BUTTON
AppStream.Embed.Elements.COPY_LOCAL_BUTTON
AppStream.Embed.Elements.PASTE_REMOTE_BUTTON
AppStream.Embed.Elements.SETTINGS_BUTTON
AppStream.Embed.Elements.STREAMING_MODE_BUTTON
AppStream.Embed.Elements.SCREEN_RESOLUTION_BUTTON
AppStream.Embed.Elements.REGIONAL_SETTINGS_BUTTON
AppStream.Embed.Elements.FULLSCREEN_BUTTON
AppStream.Embed.Elements.END_SESSION_BUTTON
```

다음 세 요소는 상수가 아닌 문자열로 HIDDEN\_ELEMENTS에 전달할 수 있습니다.


| 문자열 | 설명 | 
| --- | --- | 
| 'adminCommandsButton' | WorkSpaces 애플리케이션 이미지 빌더에 연결하면 WorkSpaces 애플리케이션 도구 모음의 오른쪽 상단에 관리자 명령 버튼이 표시됩니다. 이 문자열을 HIDDEN\_ELEMENTS에 전달하면 Admin Commands(관리 명령) 버튼이 숨겨집니다. | 
| 'softKeyboardButton' | 터치 지원 디바이스에서 WorkSpaces 애플리케이션 스트리밍 세션 중에 사용자는 WorkSpaces 애플리케이션 도구 모음에서 키보드 아이콘을 탭하여 화면 키보드를 표시할 수 있습니다. 이 문자열을 HIDDEN\_ELEMENTS에 전달하면 키보드 아이콘이 숨겨집니다. | 
| 'keyboardShortcutsButton' | 터치 지원 디바이스에서 WorkSpaces 애플리케이션 스트리밍 세션 중에 사용자는 WorkSpaces 애플리케이션 도구 모음에서 Fn 아이콘을 탭하여 키보드 바로 가기를 표시할 수 있습니다. 이 문자열을 HIDDEN\_ELEMENTS에 전달하면 Fn 아이콘이 숨겨집니다. | 

## `AppStream.Embed` 객체에 대한 함수
<a name="functions-embed-object"></a>

다음 표에는 `AppStream.Embed` 객체에 대해 수행할 수 있는 함수가 나열되어 있습니다.


| 함수 | 설명 | 
| --- | --- | 
| AppStream.Embed(containerId:string, options:object) | AppStream.Embed 객체 생성자입니다. 이 생성자는 AppStream.Embed 객체를 초기화하고 통신을 수행하며 div 컨테이너 ID를 사용합니다. ID는 iframe을 주입하는 데 사용됩니다. 또한 appstreamOptions({{sessionURL}} 및 HIDDEN\_ELEMENTS)의 구성 옵션을 포함하는 객체를 주입합니다. | 
| endSession() | 이 함수는 스트리밍 세션을 종료하지만 iframe을 파괴하지는 않습니다. 리디렉션 URL을 지정하면 iframe이 URL을 로드하려고 시도합니다. 페이지의 CORS 헤더에 따라 URL이 로드되지 않을 수 있습니다. | 
| launchApp(appId:string) | 이 함수는 이미지 생성 중에 지정된 애플리케이션 ID로 애플리케이션을 프로그래밍 방식으로 시작합니다. | 
| launchAppSwitcher() | 이 함수는 AppSwitcher 명령을 WorkSpaces 애플리케이션 포털로 보냅니다. 그러면 인스턴스에서 AppSwitcher 명령이 트리거됩니다. | 
| getSessionState() | 이 함수는 sessionStatus에 대한 객체를 반환합니다. 자세한 내용은 [임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트](#events-embedded-streaming-sessions) 단원을 참조하십시오. | 
| getUserInterfaceState() | 이 함수는 `UserInterfaceState`에 대한 객체를 반환합니다. 객체에는 다음에 대한 키-값 페어가 포함되어 있습니다.<br />`sessionStatus`: 상태 열거<br />`sessionTerminationReason`: 문자열<br />`sessionDisconnectionReason`: 문자열<br /> 자세한 내용은 [임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트](#events-embedded-streaming-sessions) 단원을 참조하십시오. | 
| addEventListener(name, callback) | 이 함수는 지정된 이벤트가 트리거될 때 호출할 콜백 함수를 추가합니다. 트리거할 수 있는 이벤트 목록은 [임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트](#events-embedded-streaming-sessions) 단원을 참조하십시오. | 
| removeEventListener(name, callback) | 이 함수는 지정된 이벤트에 대한 콜백을 제거합니다. | 
| destroy() | 이 함수는 iframe을 삭제하고 리소스를 정리합니다. 이 함수는 진행 중인 스트리밍 세션에는 영향을 주지 않습니다. | 

## 임베디드 WorkSpaces 애플리케이션 스트리밍 세션 이벤트
<a name="events-embedded-streaming-sessions"></a>

다음 표에는 임베디드 WorkSpaces 애플리케이션 스트리밍 세션 중에 트리거할 수 있는 이벤트가 나열되어 있습니다.


| Event | 데이터 | 설명 | 
| --- | --- | --- | 
| AppStream.Embed.Events.SESSION\_STATE\_CHANGE | `sessionStatus`: `State enumeration`<br />`sessionTerminationReason`: 문자열<br />`sessionDisconnectionReason`: 문자열 | 이 이벤트는 세션 상태 변경이 발생할 때 트리거됩니다. 이 이벤트에는 변경된 상태의 맵이 포함됩니다. 전체 세션 상태를 검색하려면 `getSessionState()` 함수를 사용합니다.<br />세션 상태는 다음과 같습니다.<br />`AppStream.Embed.SessionStatus.Unknown` - 세션이 시작되지 않았으며 예약되지 않았습니다.<br />`AppStream.Embed.SessionStatus.Reserved` - 세션이 예약되었지만 시작되지 않았습니다.<br />`AppStream.Embed.SessionStatus.Started` - 사용자가 세션에 연결했고 스트리밍을 시작했습니다.<br />`AppStream.Embed.SessionStatus Disconnected ` - 사용자의 세션 연결이 끊겼습니다.<br />`AppStream.Embed.SessionStatus.Ended` - 세션이 종료됨 또는 만료됨으로 표시되었습니다. | 
| AppStream.Embed.Events.SESSION\_INTERFACE\_STATE\_CHANGE | `hiddenElements`: 문자열 배열<br /> `isFullscreen`: 부울<br />`isSoftKeyboardVisible`: 부울 | 이 이벤트는 세션 상태 변경이 발생할 때 트리거됩니다. 이 이벤트에는 변경된 상태의 맵이 포함됩니다. 전체 세션 상태를 검색하려면 getSessionState() 함수를 사용합니다. | 
| AppStream.Embed.Events.SESSION\_ERROR | `errorCode`: 숫자<br />`errorMessage`: 문자열 | 이 이벤트는 세션 중에 오류가 발생할 때 트리거됩니다. | 

## 이벤트 리스너 추가 및 임베디드 WorkSpaces 애플리케이션 스트리밍 세션 종료 예제
<a name="examples-add-event-listeners-end-embedded-streaming-session"></a>

이 섹션의 예제에서는 다음을 수행하는 방법을 보여 줍니다.
+ 임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대한 이벤트 리스너를 추가합니다.
+ 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 프로그래밍 방식으로 종료합니다.

### 예제 1: 임베디드 WorkSpaces 애플리케이션 스트리밍 세션에 대한 이벤트 리스너 추가
<a name="example-add-event-listeners"></a>

임베디드 스트리밍 세션 중에 세션 상태 변경, 세션 인터페이스 상태 변경 및 세션 오류에 대한 이벤트 리스너를 추가하려면 다음 코드를 사용합니다.

```
appstreamEmbed.addEventListener(AppStream.Embed.Events.SESSION_STATE_CHANGE, updateSessionStateCallback);

appstreamEmbed.addEventListener(AppStream.Embed.Events.SESSION_INTERFACE_STATE_CHANGE, updateUserInterfaceStateCallback);

appstreamEmbed.addEventListener(AppStream.Embed.Events.SESSION_ERROR, errorCallback);
```

이 예에서 `AppStream.Embed.Events.SESSION_STATE_CHANGE`, `AppStream.Embed.Events.SESSION_INTERFACE_STATE_CHANGE`, 및 `AppStream.Embed.Events.SESSION_ERROR`는 이벤트 이름입니다.

`updateSessionStateCallback`, `updateUserInterfaceStateCallback`, 및 `errorCallback` 함수는 직접 구현하는 함수입니다. 이러한 함수는 `addEventListener` 함수에 전달되고, 이벤트가 트리거되면 호출됩니다.

### 예제 2: 임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 프로그래밍 방식으로 종료
<a name="programmatically-end-embedded-streaming-session"></a>

임베디드 WorkSpaces 애플리케이션 스트리밍 세션을 종료하려면 다음 함수를 사용합니다.

```
appstreamEmbed.endSession();
```