嵌入式 Amazon WorkSpaces 应用程序流式传输会话的常量、函数和事件 - 亚马逊 WorkSpaces 应用程序

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

嵌入式 Amazon WorkSpaces 应用程序流式传输会话的常量、函数和事件

以下主题提供了常量、函数和事件的参考信息,您可以使用这些信息来配置嵌入式 WorkSpaces 应用程序流式传输会话。

初始化嵌入式 WorkSpaces 应用程序流式传输会话时,可以将以下 WorkSpaces 应用程序用户界面元素传递到HIDDEN_ELEMENTS配置选项中。

使用 HIDDEN_ELEMENTS

初始化嵌入式 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_ELENERS 中。

字符串 描述
'adminCommandsButton' 当您连接到 WorkSpaces 应用程序映像生成器时,“管理命令” 按钮会显示在 WorkSpaces 应用程序工具栏的右上角。将此字符串传递到 HIDDEN_ELEMENTS 可以隐藏管理员命令按钮。
'softKeyboardButton' 在启用触控功能的设备上进行 WorkSpaces 应用程序流式传输会话期间,用户可以点击 WorkSpaces 应用程序工具栏上的键盘图标以显示屏幕键盘。将此字符串传递到 HIDDEN_ELEMENTS 可以隐藏键盘图标。
'keyboardShortcutsButton' 在启用触控功能的设备上进行 WorkSpaces 应用程序流式传输会话期间,用户可以点击 WorkSpaces 应用程序工具栏上的 Fn 图标来显示键盘快捷键。将此字符串传递到 HIDDEN_ELEMENTS 可以隐藏 Fn 图标。

AppStream.Embed 对象的函数

下表列出了可以在 AppStream.Embed 对象上执行的函数。

函数 描述
AppStream.Embed(containerId:string, options:object) AppStream.Embed 对象构造函数。该构造函数初始化 AppStream.Embed 对象并与其通信,并使用 div 容器 ID。该 ID 用于注入 iframe。它还会注入一个包含appstreamOptionssessionURLHIDDEN_ELEMENTS)配置选项的对象。
endSession() 此函数终止流式传输会话,但不会销毁 iframe。如果您指定了重定向 URL,则 iframe 将尝试加载该 URL。根据页面的 CORS 标头,可能无法加载该 URL。
launchApp(appId:string) 此函数使用映像创建期间指定的应用程序 ID,以编程方式启动应用程序。
launchAppSwitcher() 此函数将AppSwitcher命令发送到 WorkSpaces 应用程序门户。这会在实例上触发 AppSwitcher 命令。
getSessionState() 此函数返回 sessionStatus 的对象。有关更多信息,请参阅 嵌入式 WorkSpaces 应用程序流媒体会话事件
getUserInterfaceState()

此函数返回 UserInterfaceState 的对象。该对象包含以下内容的键值对:

sessionStatus:状态枚举

sessionTerminationReason:字符串

sessionDisconnectionReason:字符串

有关更多信息,请参阅 嵌入式 WorkSpaces 应用程序流媒体会话事件

addEventListener(name, callback) 此函数添加了一个在触发指定事件时调用的回调函数。有关可以触发的事件列表,请参阅 嵌入式 WorkSpaces 应用程序流媒体会话事件
removeEventListener(name, callback) 此函数删除指定事件的回调。
destroy() 此函数删除 iframe 并清除资源。此函数不会影响正在进行的流式传输会话。

嵌入式 WorkSpaces 应用程序流媒体会话事件

下表列出了在嵌入式 WorkSpaces 应用程序流式传输会话期间可以触发的事件。

事件 数据 描述
AppStream.Embed.Events.SESSION_STATE_CHANGE

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_INTERFACE_STATE_CHANGE

hiddenElements:字符串数组

isFullscreen:布尔值

isSoftKeyboardVisible:布尔值

此事件在发生任何会话状态更改时触发。此事件包括已更改状态的映射。要检索完整会话状态,请使用 getSessionState() 函数。
AppStream.Embed.Events.SESSION_ERROR

errorCode:数字

errorMessage:字符串

此事件在会话期间发生任何错误时触发。

添加事件侦听器和结束嵌入式 WorkSpaces 应用程序流式传输会话的示例

本节中的示例向您展示如何执行以下操作:

  • 为嵌入式 WorkSpaces 应用程序流式传输会话添加事件侦听器。

  • 以编程方式结束嵌入式 WorkSpaces 应用程序流式传输会话。

示例 1:为嵌入式 WorkSpaces 应用程序流式传输会话添加事件监听器

要针对嵌入式流式传输会话期间的会话状态更改、会话接口状态更改和会话错误添加事件侦听器,请使用以下代码:

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_CHANGEAppStream.Embed.Events.SESSION_INTERFACE_STATE_CHANGEAppStream.Embed.Events.SESSION_ERROR 是事件名称。

updateSessionStateCallbackupdateUserInterfaceStateCallbackerrorCallback 是您实施的函数。这些函数传递到 addEventListener 函数中,并在触发事件时调用。

示例 2:以编程方式结束嵌入式 WorkSpaces 应用程序流式传输会话

要结束嵌入式 WorkSpaces 应用程序流式传输会话,请使用以下函数:

appstreamEmbed.endSession();