適用於嵌入式 Amazon AppStream 2.0 串流工作階段的常數、函數和事件 - Amazon AppStream 2.0

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

適用於嵌入式 Amazon AppStream 2.0 串流工作階段的常數、函數和事件

下列主題提供常數、函數和事件的參考資訊,可用來設定內嵌的 AppStream 2.0 串流工作階段。

初始化內嵌式 AppStream 2.0 串流工作階段時,下列 AppStream 2.0 使用者介面元素可以傳入HIDDEN_ELEMENTS組態選項。

使用 HIDDEN_ELEMENTS

初始化內嵌式 AppStream 2.0 串流工作階段時,下列 AppStream 2.0 使用者介面元素可以作為常數傳遞至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' 當您連線到 AppStream 2.0 映像建置器時,管理命令按鈕會顯示在 AppStream 2.0 工具列的右上角。將此字串傳遞至 HIDDEN_ELEMENTS 會隱藏 Admin Commands (管理命令) 按鈕。
'softKeyboardButton' 在已啟用觸控功能的裝置的 AppStream 2.0 串流工作階段期間,使用者可以點選 AppStream 2.0 工具列上的鍵盤圖示,以顯示螢幕鍵盤。將此字串傳遞至 HIDDEN_ELEMENTS 會隱藏鍵盤圖示。
'keyboardShortcutsButton' 在已啟用觸控功能的裝置的 AppStream 2.0 串流工作階段期間,使用者可以點選 AppStream 2.0 工具列上的 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命令傳送至 AppStream 2.0 入口網站。此操作會觸發執行個體上的 AppSwitcher 命令。
getSessionState() 此函數會傳回 sessionStatus 的物件。如需詳細資訊,請參閱嵌入式 AppStream 2.0 串流工作階段的事件
getUserInterfaceState()

此函數會傳回 UserInterfaceState 的物件。此物件包含以下項目的金鑰值配對:

sessionStatus:狀態列舉

sessionTerminationReason:String

sessionDisconnectionReason:String

如需詳細資訊,請參閱嵌入式 AppStream 2.0 串流工作階段的事件

addEventListener(name, callback) 此函數會新增回呼功能,以在指定的活動觸發時呼叫。如需可觸發的事件清單,請參閱 嵌入式 AppStream 2.0 串流工作階段的事件
removeEventListener(name, callback) 此函數會刪除指定事件的回呼。
destroy() 此函數會刪除 iframe 並清理資源。此函數不會影響進行中的串流工作階段。

嵌入式 AppStream 2.0 串流工作階段的事件

下表列出可在內嵌 AppStream 2.0 串流工作階段期間觸發的事件。

事件 資料 描述
AppStream.Embed.Events.SESSION_STATE_CHANGE

sessionStatus: State enumeration

sessionTerminationReason:String

sessionDisconnectionReason:String

此事件會在有任何工作階段狀態變更發生時觸發。此事件包含已變更的狀態的對應。若要擷取完整工作階段狀態,請使用 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:Boolean

isSoftKeyboardVisible:Boolean

此事件會在有任何工作階段狀態變更發生時觸發。此事件包含已變更的狀態的對應。若要擷取完整工作階段狀態,請使用 getSessionState() 函數。
AppStream.Embed.Events.SESSION_ERROR

errorCode: 數字

errorMessage:String

工作階段期間發生任何錯誤都會觸發此事件。

新增事件接聽程式和結束內嵌 AppStream 2.0 串流工作階段的範例

本節中的範例說明如何執行以下動作:

  • 新增內嵌 AppStream 2.0 串流工作階段的事件接聽程式。

  • 以程式設計方式結束內嵌的 AppStream 2.0 串流工作階段。

範例 1:為內嵌 AppStream 2.0 串流工作階段新增事件接聽程式

若要在嵌入串流工作階段期間變更工作階段狀態、變更工作階段介面狀態和新增工作階段錯誤的事件偵聽程式,請使用以下程式碼:

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:以程式設計方式結束內嵌的 AppStream 2.0 串流工作階段

若要結束內嵌 AppStream 2.0 串流工作階段,請使用下列函數:

appstreamEmbed.endSession();