SDK 和 API
HDX SDK
适用于 ChromeOS 的 Citrix Workspace 应用程序引入了 API(实验性 API),此 API 允许第三方 Chrome 应用程序从以下会话中锁定、解锁和断开连接:
- Citrix Virtual Apps and Desktops
- Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)会话
使用此 API,可以同时在嵌入模式和网亭模式下启动适用于 ChromeOS 的 Citrix Workspace 应用程序。 在嵌入模式下启动的会话的运行方式与在网亭模式下启动的会话的运行方式相似。
有关 SDK 文档,请参阅 HDX SDK for Citrix Workspace app for ChromeOS(适用于 ChromeOS 的 Citrix Workspace 应用程序的 HDX SDK)。
有关 HDX SDK 示例,请参阅 Citrix 下载页面。
Chrome HDX SDK API 的增强功能
以前,集成了适用于 ChromeOS 的 HDX SDK 的外部应用程序无法查看通过 SDK 以外的其他方法启动的会话。
自 2408 版本起,Chrome HDX SDK 的新增强功能允许识别所有活动会话、断开特定会话的连接、断开所有活动会话的连接以及将用户从 Citrix Workspace 应用程序中的所有应用商店(仅限本地应用商店)注销。
有关使用 API 的详细信息,请参阅枚举会话。
Citrix 虚拟通道 SDK
Citrix 虚拟通道软件开发工具包 (SDK) 支持您为使用 ICA 协议的其他虚拟通道编写服务器端应用程序和客户端驱动程序。
服务器端虚拟通道应用程序位于 Citrix Virtual Apps 或 Citrix Virtual Apps and Desktops 服务器上。 此版本的 SDK 支持您为适用于 ChromeOS 的 Citrix Workspace 应用程序编写新的虚拟通道。 如果要为其他客户端平台编写虚拟驱动程序,请联系 Citrix。
虚拟通道 SDK 提供:
-
可与 Citrix Server API SDK (WFAPI SDK) 配合使用以创建新虚拟通道的简单接口。
-
用来演示编程技术的多个虚拟通道示例程序的有效源代码。
-
虚拟通道 SDK 需要 WFAPI SDK 才能编写虚拟通道的服务器端。
有关 VC SDK 文档,请参阅面向适用于 ChromeOS 的 Citrix Workspace 应用程序的 Citrix 虚拟通道 SDK。
虚拟通道 SDK 的增强功能
自 2305 版本起,适用于 ChromeOS 的 Citrix Workspace 应用程序支持虚拟通道 SDK 中的窗口管理 API。 通过 Web API,IT 管理员可以创建交互式应用程序,并为最终用户对其进行自定义。
在第三方 Chrome 应用程序中使用 API 的步骤
- 安装最新版本的适用于 ChromeOS 的 Citrix Workspace 应用程序。 有关详细信息,请参阅 Citrix 下载页面。
-
通过为适用于 ChromeOS 的 Citrix Workspace 应用程序添加策略文件将第三方 Chrome 应用程序添加到允许列表中。 使用 Chrome 管理设置添加策略。
有关更多详细信息,请参阅 Google 支持站点上的 Manage Chrome Apps by organizational unit(按组织单位管理 Chrome 应用程序)。
要将第三方 Chrome 应用程序添加到允许列表中,请参见下面的示例
policy.txt
JSON 数据:{ "settings": { "Value": { "settings_version": "1.0", "store_settings": { "externalApps": [“<3rdParty_App1_ExtnID>”,“<3rdParty_App2_ExtnID>”] } } } } <!--NeedCopy-->
注意:
<3rdParty_App1_ExtnID>
用作 externalApps 名称的示例,可以向适用于 ChromeOS 的 Citrix Workspace 应用程序发送消息。 从 chrome://extensions 站点获取您的 appid。 - 按如下所示在适用于 ChromeOS 的 Citrix Workspace 中启动应用程序或桌面会话:
-
获取 workspaceappID
var workspaceappID = " haiffjcadagjlijoggckpgfnoeiflnem ";
注意:
在此示例中,workspaceappID 指示适用于 ChromeOS 的 Citrix Workspace 应用程序的应用商店版本。 如果要使用重新封装的适用于 ChromeOS 的 Citrix Workspace 应用程序版本,请使用相应的 workspaceappID。
-
将 ICA 数据从 INI 转换为 JSON 格式。
注意:
ICA 文件通常以 INI 文件格式从 StoreFront 中获取。 使用以下 helper 函数将 ICA INI 文件转换为 JSON。
//Helper function to convert ica in INI format to JSON function convertICA_INI_TO_JSON(data){ var keyVals = {}; if (data) { var dataArr; if(data.indexOf('\r')==-1){ dataArr = data.split('\n'); }else{ dataArr = data.split('\r\n'); } for (var i = 0; i \< dataArr.length; i++) { var nameValue = dataArr[i].split('=', 2); if (nameValue.length === 2) { keyVals[nameValue[0]] = nameValue[1]; } // This is required as LaunchReference contains '=' as well. The above split('=',2) will not provide // the complete LaunchReference. Ideally, something like the following should be used generically as well // because there can be other variables that use the '=' character as part of the value. if (nameValue[0] === "LaunchReference") { var index = dataArr[i].indexOf('='); var value = dataArr[i].substr(index + 1); keyVals[nameValue[0]] = value; } } console.log(keyVals);//to remove return keyVals; } return null; } <!--NeedCopy-->
-
将 ICA 消息从第三方 Chrome 应用程序发送到适用于 ChromeOS 的 Citrix Workspace 应用程序。
var icaFileJson = {...}; // ICA file passed as JSON key value pairs. var message = { "method" : "launchSession", "icaData" : icaJSON }; chrome.runtime.sendMessage(workspaceappID, message, function(launchStatus) { if (launchStatus.success) { // handle success. console.log("Session launch was attempted successfully"); } else { // handle errors. console.log("error during session launch: ", launchStatus.message); } }); <!--NeedCopy-->
有关 sendMesage API 命令的更多详细信息,请参阅以下链接:
https://developer.chrome.com/extensions/runtime#event-onMessageExternal
https://developer.chrome.com/extensions/runtime#method-sendMessage
对 SDK 场景的清单 V3 支持
自 2305 版本起,适用于 ChromeOS 的 Citrix Workspace 应用程序支持 HDX SDK,Chrome 扩展程序的清单版本为 3。
有关详细信息,请参阅开发人员指南文档中的适用于 ChromeOS HDX SDK 的 Citrix Workspace 应用程序。
支持统一通信 (UC) SDK
Citrix Unified Communications SDK 允许统一通信供应商、云联络中心提供商、通信平台即服务 (CPaaS) 提供商或任何基于 WebRTC 的通信供应商与基于电子的桌面或基于浏览器的应用程序无缝集成。
有关详细信息,请参阅 Tech Zone 文章 Unified Communications (UC) SDK(统一通信 (UC) SDK)。
WebHID API 的重定向
适用于 ChromeOS 的 Citrix Workspace 应用程序的统一通信 SDK 实现了在 Citrix-WebRTC 中定义的 WebHID API 的重定向,但存在某些已知限制:
- 如果存在多个相同类型的 HID 设备,用户将无法选择特定设备进行测试。
注意:
默认情况下,此功能处于禁用状态。
如何配置
可以使用以下方式启用该功能:
- Google 管理策略
- Global App Configuration Service
Google 管理策略
对于托管设备和用户,管理员可以使用 Google 管理策略启用该功能,如下所示:
- 登录 Google 管理策略。
- 转至 Device management(设备管理)> Chrome Management(Chrome 管理)> User Settings(用户设置)。
-
将以下 JSON 字符串添加到
engine_settings
项下的policy.txt
文件中。注意:
也可以将此配置应用到以下各项:
- Device(设备)> Chrome > Apps and extensions(应用程序和扩展程序)> Users and browsers(用户和浏览器)> 搜索扩展程序 > 扩展程序策略。
- Device(设备)> Chrome > Apps and extensions(应用程序和扩展程序)> Kiosks(网亭)> 搜索扩展程序 > 扩展程序策略。
- Device(设备)> Chrome > Apps and extensions(应用程序和扩展程序)> Managed guest sessions(托管来宾会话)> 搜索扩展程序 > 扩展程序策略。
-
确保将属性
webHID
设置为true
。 下面是 JSON 数据的示例:'features' : { 'msTeamsOptimization' : { 'webHID' : true } } <!--NeedCopy-->
-
使用正确的格式设置属性 hidDeviceBlockList。 如果您想阻止某些 HID 设备,请参见下面的 JSON 数据示例:
'features' : { 'msTeamsOptimization' : { // The format of the blocklist is ["VID:PID", "VID:PID", "VID:PID", ...] // Each VID and PID is an up to 4-digit hexadecimal number with an optional "0x" prefix. // The VID is a required field. The PID is optional, so the colon and PID can be omitted. // example ["35ab:21ff", "45ac", "0x567:123a", "0x1234:0x5678"] 'hidDeviceBlockList' : [] } } <!--NeedCopy-->
- 保存更改。
Global App Configuration Service
管理员可以通过导航到 Workspace 配置 > 应用程序配置 > HDX 和多媒体 > MS Teams > 启用 webHID 重定向和 HID 设备黑名单来启用此功能。 选择复选框和相应的切换按钮可启用该功能。