SDK 和 API

HDX™ SDK

  • Citrix Workspace app for ChromeOS 引入了一个 API(实验性 API),允许第三方 Chrome 应用程序锁定、解锁以及断开与以下各项的连接:

  • Citrix Virtual Apps and Desktops
  • Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)会话

使用此 API,您可以在嵌入模式和自助服务终端模式下启动 Citrix Workspace app for ChromeOS。在嵌入模式下启动的会话功能与在自助服务终端模式下启动的会话类似。

有关 SDK 文档,请参阅 HDX SDK for Citrix Workspace app for ChromeOS

有关 HDX SDK 示例,请参阅 Citrix 下载页面。

Chrome HDX SDK API 增强功能

  • 以前,集成了 HDX SDK for ChromeOS 的外部应用程序无法查看通过 SDK 以外的方法启动的会话。

从 2408 版本开始,Chrome HDX SDK 的新增强功能提供了识别所有活动会话、断开特定会话、断开所有活动会话以及从 Citrix Workspace™ app 中的所有应用商店(仅限本地应用商店)注销用户的功能。

有关使用 API 的更多信息,请参阅 枚举会话

Citrix 虚拟通道 SDK

Citrix 虚拟通道软件开发工具包 (SDK) 支持您使用 ICA® 协议为附加虚拟通道编写服务器端应用程序和客户端驱动程序。

服务器端虚拟通道应用程序位于 Citrix Virtual Apps 或 Citrix Virtual Apps and Desktops 服务器上。此版本的 SDK 支持您为 Citrix Workspace app for ChromeOS 编写新的虚拟通道。如果您想为其他客户端平台编写虚拟驱动程序,请联系 Citrix。

虚拟通道 SDK 提供:

  • 一个易于使用的接口,可与 Citrix Server API SDK (WFAPI SDK) 中的虚拟通道配合使用,以创建新的虚拟通道。

  • 多个虚拟通道示例程序的可用源代码,这些程序演示了编程技术。

  • 虚拟通道 SDK 需要 WFAPI SDK 来编写虚拟通道的服务器端。

有关 VC SDK 文档,请参阅 Citrix Virtual Channel SDK for Citrix Workspace app for ChromeOS

虚拟通道 SDK 增强功能

从 2305 版本开始,Citrix Workspace app for ChromeOS 在虚拟通道 SDK 中支持窗口管理 API。Web API 使 IT 管理员能够创建交互式应用程序并为最终用户自定义这些应用程序。

  • 在第三方 Chrome 应用程序中使用 API 的过程

  1. 安装最新版本的 Citrix Workspace app for ChromeOS。有关详细信息,请参阅 Citrix 下载页面。
  2. 通过为 Citrix Workspace app for ChromeOS 添加策略文件,将第三方 Chrome 应用程序添加到允许列表中。使用 Chrome 管理设置添加策略。
  • 有关更多详细信息,请参阅 Google 支持上的按组织单位管理 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 名称的示例,并且可以向 Citrix Workspace app for ChromeOS 发送消息。从 chrome://extensions 站点获取您的 appid

  1. 在 Citrix Workspace for ChromeOS 中启动应用程序或桌面会话,如下所示:
  • 获取 workspaceappID

    var workspaceappID = " haiffjcadagjlijoggckpgfnoeiflnem ";

    注意:

    在此示例中,workspaceappID 指示 Citrix Workspace app for ChromeOS 的应用商店版本。如果您使用的是 Citrix Workspace app for ChromeOS 的重新打包版本,请使用相应的 workspaceappID。

  • 将 ICA 数据从 INI 格式转换为 JSON 格式。

    注意:

  • 通常,ICA 文件是从 StoreFront 作为 INI 文件检索的。使用以下帮助程序函数将 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-->
    
  • 从第三方 Chrome 应用程序向 Citrix Workspace app for ChromeOS 发送 ICA 消息。

     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 场景的 Manifest V3 支持

从 2305 版本开始,Citrix Workspace app for ChromeOS 支持具有 manifest version 3 的 Chrome 扩展程序的 HDX SDK。

有关更多信息,请参阅开发人员指南文档中的 Citrix Workspace app for ChromeOS HDX SDK

统一通信 (UC) SDK 支持

Citrix 统一通信 SDK 允许统一通信供应商、云联络中心提供商、通信平台即服务 (CPaaS) 提供商或任何基于 WebRTC 的通信供应商与基于 Electron 的桌面应用程序或基于浏览器的应用程序无缝集成。

有关更多信息,请参阅技术专区文章 统一通信 (UC) SDK

WebHID API 重定向

Citrix Workspace app for ChromeOS 的统一通信 SDK 实现了 Citrix-WebRTC 中定义的 WebHID API 重定向,但存在某些已知限制:

  • 如果存在多个相同类型的 HID 设备,用户无法选择特定设备进行测试。

注意:

此功能默认处于禁用状态。

如何配置

您可以通过以下方式启用此功能:

  • Google 管理策略
  • 全局应用程序配置服务

Google 管理策略

对于托管设备和用户,管理员可以使用 Google 管理策略按如下方式启用此功能:

  1. 登录到 Google 管理策略。
  2. 转到“设备管理”>“Chrome 管理”>“用户设置”。
  3. 将以下 JSON 字符串添加到 engine_settings 键下的 policy.txt 文件中。

    注意:

    您也可以将此配置应用于以下各项:

    • 设备”>“Chrome”>“应用程序和扩展程序”>“用户和浏览器”> 搜索扩展程序 > 扩展程序策略。
    • 设备”>“Chrome”>“应用程序和扩展程序”>“自助服务终端”> 搜索扩展程序 > 扩展程序策略。
    • 设备”>“Chrome”>“应用程序和扩展程序”>“托管访客会话”> 搜索扩展程序 > 扩展程序策略。
  4. 确保将属性 webHID 设置为 true。以下是 JSON 数据示例:

    'features' : {
        'msTeamsOptimization' : { 
            'webHID' : true 
            } 
            }
    <!--NeedCopy-->
    
  5. 使用正确的格式设置属性 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-->
    
  6. 保存更改。

全局应用程序配置服务

管理员可以通过导航到“Workspace Configuration”>“App Configuration”>“HDX and Multimedia”>“MS Teams”>“Enable webHID redirection”和“HID Device Blocklist”来启用此功能。选中复选框和相应的切换按钮以启用此功能。

SDK 和 API