SDK 和 API

HDX™ SDK

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

  • Citrix 虚拟应用和桌面
  • Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)会话

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

有关 SDK 文档,请参阅适用于 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 Virtual Channel SDK

此功能中的已知问题

当您使用 ChromeOS 版本 146 或更高版本时,使用早期 Citrix Virtual Channel SDK 版本构建的自定义虚拟通道在与 Manifest V3 Chrome 扩展程序一起使用时可能无法按预期运行。Manifest V3 和 Chrome 扩展程序 API 行为之间的兼容性问题导致了此问题。我们建议更新到 Citrix 下载页面上的最新 VCSDK 2603 版本,以获得流畅的虚拟通道体验。[RFHTMCRM-17807]

虚拟通道 SDK 的增强功能

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

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

  1. 安装最新版本的适用于 ChromeOS 的 Citrix Workspace 应用程序。有关详细信息,请参阅 Citrix 下载 页面。
  2. 通过为适用于 ChromeOS 的 Citrix Workspace 应用程序添加策略文件,将第三方 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 名称的示例,可以向适用于 ChromeOS 的 Citrix Workspace 应用程序发送消息。从 chrome://extensions 站点获取您的 appid

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

    var workspaceappID = " haiffjcadagjlijoggckpgfnoeiflnem ";;

    注意:

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

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

    注意:

    通常,ICA 文件会作为 INI 文件从 StoreFront 中检索。使用以下帮助程序函数将 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 场景的 Manifest V3 支持

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

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

支持统一通信 (UC) SDK

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

有关详细信息,请参阅技术专区文章 Unified Communications (UC) SDK

WebHID API 重定向

适用于 ChromeOS 的 Citrix Workspace 应用程序的统一通信 SDK 实现了 WebHID API 的重定向,如 Citrix-WebRTC 中所定义,但存在某些已知限制:

  • 如果存在多个相同类型的 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