SDKおよびAPI

HDX SDK

ChromeOS向けCitrix Workspaceアプリでは、サードパーティ製Chromeアプリをロックおよびロック解除したり、以下のセッションから切断したりできるChrome API(実験的なAPI)を導入しました:

  • Citrix Virtual Apps and Desktops
  • Citrix DaaS(旧称Citrix Virtual Apps and Desktopsサービス)セッション

このAPIによって、埋め込みモードおよびキオスクモードの両方でChromeOS向けCitrix Workspaceアプリを起動できます。 埋め込みモードで起動されたセッションは、キオスクモードで起動されたセッションと同様に機能します。

SDKについて詳しくは、HDX SDK for Citrix Workspace app for ChromeIOSを参照してください。

HDX SDKの例については、Citrixダウンロードページを参照してください。

Chrome HDX SDK APIの機能強化

以前は、ChromeOS統合用のHDX SDKを使用する外部アプリでは、SDK以外の方法で開始されたセッションを認識できませんでした。

2408バージョン以降、Chrome HDX SDKの新しい機能強化により、すべてのアクティブなセッションを識別する、特定のセッションを切断する、すべてのアクティブなセッションを切断する、Citrix Workspaceアプリ内のすべてのストア(オンプレミスストアのみ)からユーザーをログアウトする機能が提供されます。

APIの使用について詳しくは、「Enumerate sessions」を参照してください。

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について詳しくは、Citrix Virtual Channel SDK for Citrix Workspace app for ChromeOS.を参照してください。

仮想チャネルSDKの機能強化

2305リリース以降、ChromeOS向けCitrix Workspaceアプリは、仮想チャネルSDKのWindows Management 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-->
    

    &lt;3rdParty_App1_ExtnID&gt;は、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-->
    
  • サードパーティのChromeアプリからChromeOS向けCitrix Workspaceアプリに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リリース以降、ChromeOS向けCitrix Workspaceアプリは、manifest version 3を含むChrome拡張機能を使用するHDX SDKをサポートします。

詳しくは、開発者ガイドドキュメントの「Citrix Workspace app for ChromeOS HDX SDK」を参照してください。

統合コミュニケーション(UC)SDK

Citrix Unified Communications SDKを使用すると、UCベンダー、クラウドコンタクトセンタープロバイダー、Communications Platform as a Service(CPaaS)プロバイダー、または任意のWebRTCベースの通信ベンダーが、電子ベースのデスクトップまたはブラウザーベースのアプリケーションとシームレスに統合できます。

詳しくは、Tech Zoneの記事「Unified Communications(UC)SDK」を参照してください。

WebHID APIのリダイレクト

ChromeOS向けCitrix Workspaceアプリの統合コミュニケーションSDKは、Citrix-WebRTCで定義されているWebHID APIのリダイレクトを実装していますが、いくつかの既知の制限があります:

  • 同じタイプのHIDデバイスが複数存在する場合、ユーザーはテスト用に特定のデバイスを選択することができません。

この機能はデフォルトでは無効になっています。

構成方法

この機能を有効にするには、以下を使用します:

  • Google管理ポリシー
  • Global App Configuration Service

Google管理ポリシー

管理対象デバイスとユーザーの場合、管理者は、次のようにGoogle管理ポリシーを使用して機能を有効にできます:

  1. Google管理ポリシーにサインインします。
  2. [端末管理] > [Chrome搭載端末] > [ユーザー設定]の順に移動します。
  3. 次のJSON文字列をengine_settingsキーの下のpolicy.txtファイルに追加します。

    この構成は以下にも適用できます:

    • [Device] > [Chrome] > [Apps and extensions] > [Users and browsers] >[Search for the extension]>[Policy for extensions]。
    • [Device] > [Chrome] > [Apps and extensions] > [Kiosks] >[Search for the extension]>[Policy for extensions]。
    • [Device] > [Chrome] > [Apps and extensions] > [Managed guest sessions] >[Search for the extension]>[Policy for extensions]。
  4. 属性webHIDtrueに設定されていることを確認します。 このような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. 変更を保存します。

Global App Configuration Service

管理者は、[ワークスペース構成] > [アプリ構成] > [HDXとマルチメディア] > [MS Teams] > [Enable webHID redirection]および[HID Device Blocklist]に移動して、この機能を有効にできます。 機能を有効にするには、チェックボックスとそれぞれのトグルボタンを選択します。

SDKおよびAPI