

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon WorkSpaces アプリケーションストリーミングセッションを埋め込む
<a name="embed-streaming-sessions"></a>

ウェブサイト内に WorkSpaces Applications ストリーミングセッションを埋め込むことで、動的でインタラクティブ、カスタマイズされたエクスペリエンスをユーザー向けに作成できます。埋め込み WorkSpaces アプリケーションストリーミングセッションを使用すると、ユーザーはウェブサイトから直接 3D モデル、マップ、データセットを操作できます。たとえば、ユーザーは WorkSpaces アプリケーションストリーミングセッションと一緒にトレーニング手順や教育資料を表示できます。

**Topics**
+ [Amazon WorkSpaces アプリケーションストリーミングセッションを埋め込むための前提条件](embed-streaming-sessions-prerequisites.md)
+ [Amazon WorkSpaces アプリケーションストリーミングセッションを埋め込む際の推奨事項と使用上の考慮事項](embed-streaming-sessions-recommendations-considerations.md)
+ [ステップ 1: 埋め込み Amazon WorkSpaces アプリケーションストリーミングセッションへのホストドメインを指定する](specify-host-domain-embedded-streaming-sessions.md)
+ [ステップ 2: ユーザー認証用のストリーミング URL を作成する](create-streaming-url-user-authentication.md)
+ [ステップ 3: 埋め込み Amazon WorkSpaces アプリケーションファイルをダウンロードする](download-embed-files.md)
+ [ステップ 4. Amazon WorkSpaces アプリケーションと統合するようにウェブサイトを設定する](configure-website-for-integration.md)
+ [埋め込み Amazon WorkSpaces アプリケーションストリーミングセッションの定数、関数、およびイベント](constants-functions-events-embedded-sessions.md)

# Amazon WorkSpaces アプリケーションストリーミングセッションを埋め込むための前提条件
<a name="embed-streaming-sessions-prerequisites"></a>

ウェブサイトに WorkSpaces Applications ストリーミングセッションを埋め込むには、以下が必要です。
+ WorkSpaces アプリケーションイメージ、フリート、スタックを含む設定済みの WorkSpaces アプリケーション環境。これらのリソースの作成方法については、*WorkSpaces アプリケーション管理ガイド*」の以下のトピックを参照してください。
  +  [チュートリアル: WorkSpaces アプリケーションコンソールを使用してカスタム WorkSpaces アプリケーションイメージを作成する](tutorial-image-builder.md)、または [Image Assistant CLI オペレーションを使用して Amazon WorkSpaces アプリケーションイメージをプログラムで作成する](programmatically-create-image.md)
  + [Amazon WorkSpaces アプリケーションでフリートを作成する](set-up-stacks-fleets-create.md)
  + [Amazon WorkSpaces アプリケーションでスタックを作成する](set-up-stacks-fleets-install.md)
+ ユーザー認証用のストリーミング URL。SAML 2.0 および WorkSpaces Applications ユーザープールは、現在、埋め込み WorkSpaces Applications ストリーミングセッションの認証方法としてサポートされていません。
+ 必要に応じて、埋め込み WorkSpaces アプリケーションストリーミングセッションにカスタムドメインを使用できます。カスタムドメインを使用すると、WorkSpaces アプリケーション URL ではなく、独自の会社 URL をユーザーに表示することができます。ユーザーがサードパーティー Cookie をブロックするウェブブラウザを使用している場合は、カスタムドメインが必要です。
**注記**  
Amazon CloudFront を使用してカスタムドメインを設定できます。詳細については、[WorkSpaces](https://aws.amazon.com/blogs/desktop-and-application-streaming/using-custom-domains-with-amazon-appstream-2-0/)」を参照してください。

  カスタムドメインを使用する場合は、以下の操作を行う必要があります。
  + 同じドメインを使用するストリーミング URL を作成する。
  + 埋め込み WorkSpaces アプリケーションストリーミングセッションをホストするウェブページのヘッダー**appstream-custom-url-domain**に を追加します。ヘッダー値には、リバースプロキシによってユーザーに表示されるドメインを使用します。詳細については、「[カスタムドメインを使用するための設定要件](create-streaming-url-user-authentication.md#configuration-requirements-custom-domains)」を参照してください。

# Amazon WorkSpaces アプリケーションストリーミングセッションを埋め込む際の推奨事項と使用上の考慮事項
<a name="embed-streaming-sessions-recommendations-considerations"></a>

埋め込み WorkSpaces アプリケーションストリーミングセッションについては、次の推奨事項と使用上の注意を考慮してください。
+ ユーザーの埋め込み WorkSpaces アプリケーションストリーミングエクスペリエンスを最大限制御できるように、約 5 秒の有効期間の短いストリーミング URLs を設定することをお勧めします。いずれのユーザーもウェブページのコンテンツを調べて、そのソースを表示できます。ソースには、ドキュメントオブジェクトモデル (DOM) と iframe の src (ソース) URL が含まれています。ユーザーが URL をコピーしても有効な場合、そのユーザーは URL を別のブラウザタブに貼り付け、埋め込みオプションを使用せずに、標準の WorkSpaces Applications ポータルユーザーインターフェイスでセッションをストリーミングできます。
+ カスタムドメインが埋め込み WorkSpaces アプリケーションストリーミングセッションに使用される場合、同時セッションはサポートされません。同時セッションは、ユーザーが同じウェブページまたは 2 つの異なるブラウザタブで 2 つの埋め込み WorkSpaces アプリケーションストリーミングセッションを開始したときに発生します。1 人のユーザーが同時セッションを持つことはできませんが、複数のユーザーを持つことはできます。例えば、ユーザーがアプリケーションにログインし、アプリケーションが顧客に提供するストリーミング URL を生成し (請求では一意のユーザーとしてカウントされます)、顧客がストリーミング URL をロードすると、その顧客は指定されたプール内の appstream インスタンスに割り当てられます。

# ステップ 1: 埋め込み Amazon WorkSpaces アプリケーションストリーミングセッションへのホストドメインを指定する
<a name="specify-host-domain-embedded-streaming-sessions"></a>

WorkSpaces アプリケーションストリーミングセッションをウェブページに埋め込むには、まずスタックを更新して、埋め込みストリーミングセッションをホストするドメインを指定します。これは、承認されたウェブサイトドメインのみが WorkSpaces アプリケーションストリーミングセッションを埋め込むことができるようにするためのセキュリティ対策です。WorkSpaces Applications は、指定したドメインを **Content-Security-Policy** (CSP) ヘッダーに追加します。詳細については、[Mozilla MDN Web Docs](https://developer.mozilla.org/en-US/) ドキュメントの「[コンテンツセキュリティポリシー (CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)」を参照してください。

スタックを更新して埋め込みストリーミングセッションをホストするドメインを指定するには、次のいずれかの方法を使用します。
+ WorkSpaces アプリケーションコンソール
+ `EmbedHostDomains` API アクション 
+ `embed-host-domains` AWS コマンドラインインターフェイス (AWS CLI) コマンド

WorkSpaces アプリケーションコンソールを使用してホストドメインを指定するには、次の手順を実行します。

1. [https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) で WorkSpaces アプリケーションコンソールを開きます。

1. 左側のナビゲーションペインで [**スタック**] を選択し、必要なスタックを選択します。

1. **[編集]** を選択します。

1. **埋め込み WorkSpaces アプリケーションを展開します (オプション)**。

1. [**Host Domains (ホストドメイン)**] で、有効なドメインを指定します。例: **training.example.com**。
**注記**  
埋め込みストリーミングセッションは、HTTPS （TCP ポート 443）経由でのみサポートされます。

1. **[更新]** を選択します。

# ステップ 2: ユーザー認証用のストリーミング URL を作成する
<a name="create-streaming-url-user-authentication"></a>

埋め込み WorkSpaces アプリケーションストリーミングセッションのユーザーを認証するには、ストリーミング URL を作成する必要があります。現在、SAML 2.0 とユーザープールは埋め込みストリーミングセッションではサポートされていません。ストリーミング URL を作成するには、以下のいずれかの方法を使用します。
+ WorkSpaces アプリケーションコンソール
+ [CreateStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html) API アクション 
+ [create-streaming-url](https://docs.aws.amazon.com/cli/latest/reference/appstream/create-streaming-url.html) AWS CLI コマンド

## カスタムドメインを使用するための設定要件
<a name="configuration-requirements-custom-domains"></a>

カスタムドメインを使用して会社のブランドを適用するか、埋め込み WorkSpaces アプリケーションストリーミングセッションがサードパーティー Cookie をブロックするブラウザで動作するようにするかにかかわらず、設定要件は同じです。

サードパーティー Cookie をブロックするウェブブラウザの場合は、カスタムドメインが必要です。WorkSpaces Applications はブラウザ Cookie を使用してストリーミングセッションを認証し、毎回サインイン認証情報の入力を求められることなく、ユーザーがアクティブなセッションに再接続できるようにします。デフォルトでは、WorkSpaces Applications ストリーミング URLsドメイン**appstream.com**として が含まれます。ウェブサイトにストリーミングセッションを埋め込むと、**appstream.com** はサードパーティードメインとして扱われます。その結果、サードパーティー Cookie をデフォルトでブロックする最新のブラウザを使用していると、ストリーミングセッションがブロックされる場合があります。

このシナリオで埋め込み WorkSpaces Applications ストリーミングセッションがブロックされないようにするには、次の手順に従います。

1. 埋め込み WorkSpaces アプリケーションストリーミングセッションをホストするカスタムドメインを指定します。

   カスタムドメインを設定するときは、ドメインが WorkSpaces アプリケーションを埋め込むウェブページのサブドメインであることを確認します。たとえば、スタックを更新してホストドメインとして **training.example.com** を指定する場合、埋め込みストリーミングセッション用に **content.training.example.com** というサブドメインを作成できます。

1. 同じカスタムサブドメインを使用する埋め込み WorkSpaces アプリケーションストリーミングセッションのストリーミング URL を作成します。ストリーミング URL を作成するには、[CreateStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html) API アクションまたは [create-streaming-url](https://docs.aws.amazon.com/cli/latest/reference/appstream/create-streaming-url.html) AWS CLI コマンドを使用します。このシナリオでは、WorkSpaces アプリケーションコンソールを使用してストリーミング URL を作成することはできません。

   埋め込み WorkSpaces アプリケーションストリーミングセッションのストリーミング URL を作成するには、URL で **appstream2.***region***.aws.amazon.com** を独自のドメインに置き換えます。

   デフォルトでは、WorkSpaces アプリケーションストリーミング URLs次のようにフォーマットされます。

   ```
   https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode
   ```

   サブドメインが **content.training.example.com** の場合、新しいストリーミング URL は以下の形式になります。

   ```
   https://content.training.example.com/authenticate?parameters=authenticationcode
   ```
**注記**  
カスタムドメインを作成するときは、そのドメインが設定された AWS リージョンでのみ、埋め込み WorkSpaces アプリケーションストリーミングセッションにドメインを使用できます。複数のリージョンでカスタムドメインをサポートする予定の場合は、該当するリージョンごとにカスタムドメインを作成します。また、埋め込みストリーミングセッションは HTTPS （TCP ポート 443）経由でのみサポートされます。

1. 埋め込みストリーミングセッションをホストするウェブページのヘッダーに **appstream-custom-url-domain** を追加します。ヘッダー値には、リバースプロキシによってユーザーに表示されるドメインを使用します。例:

   ```
   Header name: appstream-custom-url-domain
   Header value: training.example.com
   ```

   カスタムドメインを設定し、その同じドメインを指定するストリーミング URL を作成すると、その Cookie をファーストパーティー Cookie として保存できるようになります。Amazon CloudFront を使用してカスタムドメインを設定する方法については、[WorkSpaces](https://aws.amazon.com/blogs/desktop-and-application-streaming/using-custom-domains-with-amazon-appstream-2-0/)」を参照してください。

埋め込み WorkSpaces アプリケーションストリーミングセッションのカスタムドメインを設定した後、ストリーミング URLs がカスタムドメインにリダイレクトされない場合、またはカスタムドメインがユーザーに対して正しく表示されない場合は、次のトラブルシューティングトピックを参照してください。
+ [埋め込み WorkSpaces アプリケーションストリーミングセッション用にカスタムドメインをセットアップしましたが、WorkSpaces アプリケーションストリーミング URLsはカスタムドメインにリダイレクトされません。](troubleshooting-general.md#embedded-streaming-sessions-streaming-urls-not-redirected-to-custom-domain)

# ステップ 3: 埋め込み Amazon WorkSpaces アプリケーションファイルをダウンロードする
<a name="download-embed-files"></a>

埋め込み WorkSpaces アプリケーションストリーミングセッションをホストするには、提供された WorkSpaces アプリケーション API JavaScript ファイルをダウンロードして設定する必要があります。

1. [ウェブサイトのウェブページで、ステップ 1 のリンクを選択して WorkSpaces ](https://clients.amazonappstream.com/embed.html)Applications Embed Kit .zip ファイル **appstream\$1embed\$1<version>.zip** をダウンロードします。 WorkSpaces 

1. .zip ファイルをダウンロードした場所に移動し、ファイルの内容を抽出します。

1. ファイルの抽出された内容は **appstream-embed** という 1 つのフォルダで構成されます。**COPYRIGHT.txt** および **THIRD\$1PARTY\$1NOTICES.txt** ファイルに加えて、このフォルダには以下の 2 つのファイルが含まれています。
   + **appstream-embed.js** — 埋め込み WorkSpaces アプリケーション API を提供します。この JavaScript ファイルには、埋め込み WorkSpaces アプリケーションストリーミングセッションを設定および制御するための関数と API アクションが含まれています。
   + **embed-sample.html** — 埋め込み WorkSpaces アプリケーション API を使用してストリーミングセッションを初期化し、関数を呼び出し、イベントをリッスンする方法について説明します。このサンプルファイルには、このトピックの情報を応用した開発者向けのユースケースの例が示されています。

# ステップ 4. Amazon WorkSpaces アプリケーションと統合するようにウェブサイトを設定する
<a name="configure-website-for-integration"></a>

以下のセクションでは、埋め込み WorkSpaces アプリケーションストリーミングセッションをホストするようにウェブページを設定する方法について説明します。

**Topics**
+ [appstream-embed JavaScript ファイルをインポートする](#import-embed-javascript-file)
+ [`AppStream.Embed` インターフェイスオブジェクトを初期化して設定する](#initialize-configure-embed-interface-object)
+ [WorkSpaces アプリケーションユーザーインターフェイスで項目を非表示にする例](#examples-hiding-user-interface-items)

## appstream-embed JavaScript ファイルをインポートする
<a name="import-embed-javascript-file"></a>

1. WorkSpaces アプリケーションストリーミングセッションを埋め込む予定のウェブページで、次のコードを追加して **appstream-embed.js** ファイルをウェブページにインポートします。

   ```
   <script type="text/javascript" src="./appstream_embed.js"> </script>
   ```

1. 次に、空のコンテナ div を作成します。設定した div の ID は、WorkSpaces Applications 埋め込みコンストラクタに渡されます。その後、ストリーミングセッションの iframe を注入するために使用されます。div を作成するには、以下のコードを追加します。

   ```
   <div id="appstream-container"> </div>
   ```

## `AppStream.Embed` インターフェイスオブジェクトを初期化して設定する
<a name="initialize-configure-embed-interface-object"></a>

JavaScript で `AppStream.Embed` インターフェイスオブジェクトを初期化するには、ストリーミング URL およびユーザーインターフェイス設定のオプションを使用して `AppStream.Embed` オブジェクトを作成するコードを追加する必要があります。これらのオプション、および作成した div ID は、`appstreamOptions` というオブジェクトに保存されます。

以下のサンプルコードでは、`AppStream.Embed` インターフェイスオブジェクトを初期化する方法を示しています。

```
var appstreamOptions = {
     sessionURL: 'https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode...',
     userInterfaceConfig:{[AppStream.Embed.Options.HIDDEN_ELEMENTS]:[AppStream.Embed.Elements.TOOLBAR]}
 };
 appstreamEmbed = new AppStream.Embed("appstream-container", appstreamOptions);
```

コードで、*sessionURL* と *userInterfaceConfig* を独自の値に置き換えます。

**注記**  
*userInterfaceConfig* に指定された値は、WorkSpaces アプリケーションツールバー全体を非表示にします。この値は例として含まれており、オプションです。

***sessionUrl***  
WorkSpaces アプリケーションコンソール、[CreateStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html) API アクション、または [create-streaming-url](https://docs.aws.amazon.com/cli/latest/reference/appstream/create-streaming-url.html) AWS CLI コマンドを使用して作成したストリーミング URL。このパラメータは大文字と小文字が区別されます。  
**タイプ**: 文字列  
**必須**: はい

***userInterfaceConfig***  
ユーザーインターフェイス要素の初期状態を生成する設定。この設定はキーと値のペアです。  
キー は`AppStream.Embed.Options.HIDDEN_ELEMENTS`、埋め込み WorkSpaces アプリケーションストリーミングセッションが初期化されたときに最初に非表示になるユーザーインターフェイスオブジェクトを指定します。後で、`getInterfaceState` パラメータを使用して、非表示オブジェクトと表示オブジェクトの両方を返すことができます。  
値は、定数 (ツールバーボタン) の配列です。使用できる定数のリストについては、「[「`HIDDEN_ELEMENTS`」 の使用](constants-functions-events-embedded-sessions.md#constants-hidden-elements)」を参照してください。  
**タイプ**: マップ (*key*:*Value*)  
**必須:** いいえ

## WorkSpaces アプリケーションユーザーインターフェイスで項目を非表示にする例
<a name="examples-hiding-user-interface-items"></a>

このセクションの例では、埋め込み WorkSpaces Applications ストリーミングセッション中に WorkSpaces Applications ユーザーインターフェイスの項目をユーザーから非表示にする方法を示します。

**Topics**
+ [例 1: WorkSpaces アプリケーションツールバー全体を非表示にする](#example-hide-the-entire-tooolbar)
+ [例 2: WorkSpaces アプリケーションツールバーで特定のボタンを非表示にする](#example-hide-a-specific-toolbar-button)
+ [例 3: WorkSpaces アプリケーションツールバーで複数のボタンを非表示にする](#example-hide-multiple-toolbar-buttons)

### 例 1: WorkSpaces アプリケーションツールバー全体を非表示にする
<a name="example-hide-the-entire-tooolbar"></a>

埋め込みストリーミングセッション中にユーザーが WorkSpaces アプリケーションツールバーのボタンにアクセスできないようにするには、 `AppStream.Embed.Elements.TOOLBAR`定数を使用します。この定数を使用すると、すべての WorkSpaces Applications ツールバーボタンを非表示にできます。

```
var appstreamOptions = {
     sessionURL: 'https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode...',
     userInterfaceConfig:{[AppStream.Embed.Options.HIDDEN_ELEMENTS]:[AppStream.Embed.Elements.TOOLBAR]}
 };
```

### 例 2: WorkSpaces アプリケーションツールバーで特定のボタンを非表示にする
<a name="example-hide-a-specific-toolbar-button"></a>

WorkSpaces アプリケーションツールバーを表示しながら、埋め込みストリーミングセッション中にユーザーが特定のツールバーボタンにアクセスできないようにすることができます。そのためには、非表示にするボタンの定数を指定します。以下のコードは、`AppStream.Embed.Elements.FILES_BUTTON` 定数を使用して [**My Files**] ボタンを非表示にします。これにより、ユーザーは埋め込みストリーミングセッション中に永続的ストレージオプションにアクセスできなくなります。

```
var appstreamOptions = {
     sessionURL: 'https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode...',
     userInterfaceConfig:{[AppStream.Embed.Options.HIDDEN_ELEMENTS]:[AppStream.Embed.Elements.FILES_BUTTON]}
 };
```

### 例 3: WorkSpaces アプリケーションツールバーで複数のボタンを非表示にする
<a name="example-hide-multiple-toolbar-buttons"></a>

WorkSpaces アプリケーションツールバーを表示しながら、埋め込みストリーミングセッション中にユーザーが複数のツールバーボタンにアクセスできないようにすることができます。そのためには、非表示にするボタンの定数を指定します。以下のコードは、`AppStream.Embed.Elements.END_SESSION_BUTTON` および `AppStream.Embed.Elements.FULLSCREEN_BUTTON` 定数を使用して、[**End Session**] および [**Fullscreen**] ボタンを非表示にします。

**注記**  
各定数は、前後にスペースを入れずにカンマで区切ります。

```
var appstreamOptions = {
     sessionURL: 'https://appstream2.region.aws.amazon.com/authenticate?parameters=authenticationcode... (https://appstream2.region.aws.amazon.com/#/)',
     userInterfaceConfig:{[AppStream.Embed.Options.HIDDEN_ELEMENTS]:[AppStream.Embed.Elements.END_SESSION_BUTTON,AppStream.Embed.Elements.FULLSCREEN_BUTTON]}
 };
```

# 埋め込み 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 Applications ストリーミングセッションが初期化されると、次の WorkSpaces Applications ユーザーインターフェイス要素を定数として`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
```

次の 3 つの要素は、定数としてではなく、文字列として HIDDEN\$1ELEMENTS に渡すことができます。


| String | 説明 | 
| --- | --- | 
| 'adminCommandsButton' | WorkSpaces Applications Image Builder に接続すると、WorkSpaces Applications ツールバーの右上隅に管理者コマンドボタンが表示されます。この文字列を HIDDEN\$1ELEMENTS に渡すと、[Admin Commands] ボタンが非表示になります。 | 
| 'softKeyboardButton' | タッチ対応デバイスで WorkSpaces Applications ストリーミングセッション中に、ユーザーは WorkSpaces Applications ツールバーのキーボードアイコンをタップすると、画面上のキーボードを表示できます。この文字列を HIDDEN\$1ELEMENTS に渡すと、キーボードアイコンが非表示になります。 | 
| 'keyboardShortcutsButton' | タッチ対応デバイスで WorkSpaces Applications ストリーミングセッション中に、ユーザーは WorkSpaces Applications ツールバーの Fn アイコンをタップしてキーボードショートカットを表示できます。この文字列を HIDDEN\$1ELEMENTS に渡すと、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\$1ELEMENTS) を含むオブジェクトを注入します。 | 
| endSession() | この関数は、ストリーミングセッションを終了しますが、iframe は破棄しません。リダイレクト URL を指定している場合、iframe では URL のロードが試みられます。ページの CORS ヘッダーによっては、URL がロードされない場合があります。 | 
| launchApp(appId:string) | この関数は、イメージの作成中に指定されたアプリケーション ID に対応するアプリケーションをプログラムで起動します。 | 
| launchAppSwitcher() | この関数は、 AppSwitcher コマンドを WorkSpaces Applications ポータルに送信します。これにより、インスタンスに対して AppSwitcher コマンドがトリガーされます。 | 
| getSessionState() | この関数は、sessionStatus のオブジェクトを返します。詳細については、「[埋め込み WorkSpaces アプリケーションストリーミングセッションのイベント](#events-embedded-streaming-sessions)」を参照してください。 | 
| getUserInterfaceState() | この関数は、`UserInterfaceState` のオブジェクトを返します。オブジェクトには、以下のキーと値のペアが含まれます。 `sessionStatus`: 状態の列挙 `sessionTerminationReason`: 文字列 `sessionDisconnectionReason`: 文字列  詳細については、「[埋め込み 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 アプリケーションストリーミングセッション中にトリガーできるイベントを示します。


| イベント | データ | 説明 | 
| --- | --- | --- | 
| AppStream.Embed.Events.SESSION\$1STATE\$1CHANGE |  `sessionStatus`: `State enumeration` `sessionTerminationReason`: 文字列 `sessionDisconnectionReason`: 文字列  | このイベントは、セッション状態の変更が生じたときにトリガーされます。このイベントには、変更された状態のマップが含まれます。完全なセッション状態を取得するには、`getSessionState()` 関数を使用します。 セッション状態は以下のとおりです。 `AppStream.Embed.SessionStatus.Unknown` — セッションは開始されておらず、予約されていません `AppStream.Embed.SessionStatus.Reserved` — セッションは予約されていますが、開始されていません。 `AppStream.Embed.SessionStatus.Started` — ユーザーがセッションに接続し、ストリーミングを開始しました。 `AppStream.Embed.SessionStatus Disconnected ` — ユーザーがセッションから切断されました。 `AppStream.Embed.SessionStatus.Ended` — セッションが終了または期限切れとしてマークされました。  | 
| AppStream.Embed.Events.SESSION\$1INTERFACE\$1STATE\$1CHANGE | `hiddenElements`: 文字列の配列  `isFullscreen`: ブール値 `isSoftKeyboardVisible`: ブール値  | このイベントは、セッション状態の変更が生じたときにトリガーされます。このイベントには、変更された状態のマップが含まれます。完全なセッション状態を取得するには、getSessionState() 関数を使用します。 | 
| AppStream.Embed.Events.SESSION\$1ERROR | `errorCode`: 番号 `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();
```