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 应用程序。