SDK および API

HDX™ SDK

Citrix Workspaceアプリ for ChromeOSは、サードパーティのChromeアプリが以下からロック、ロック解除、切断できるAPI(実験的API)を導入しました。

  • シトリックス バーチャルアプリおよびデスクトップ
  • Citrix DaaS(旧Citrix Virtual Apps and Desktopsサービス)セッション

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

SDKのドキュメントについては、「Citrix Workspaceアプリ for ChromeOS用HDX SDK」を参照してください。

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

Chrome HDX SDK APIの機能強化

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

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

APIの使用方法の詳細については、「セッションの列挙」を参照してください。

Citrix 仮想チャネル SDK

Citrix Virtual Channel Software Development Kit(SDK)は、ICA®プロトコルを使用して追加の仮想チャネル用のサーバー側アプリケーションとクライアント側ドライバーを作成するのに役立ちます。

サーバー側の仮想チャネルアプリケーションは、Citrix Virtual AppsまたはCitrix Virtual Apps and Desktopsサーバー上にあります。このバージョンのSDKは、Citrix Workspaceアプリ for ChromeOS用の新しい仮想チャネルを作成するのに役立ちます。他のクライアントプラットフォーム用の仮想ドライバーを作成する場合は、Citrixにお問い合わせください。

Virtual Channel SDK は以下を提供します:

  • Citrix Server API SDK (WFAPI SDK) の仮想チャネルと組み合わせて新しい仮想チャネルを作成できる簡単なインターフェイス。

  • プログラミング手法を示すいくつかの仮想チャネルサンプルプログラムの動作するソースコード。

  • Virtual Channel SDK は、仮想チャネルのサーバー側を記述するために WFAPI SDK を必要とします。

VC SDK のドキュメントについては、Citrix Workspace app for ChromeOS 向け Citrix Virtual Channel SDK を参照してください。

機能の既知の問題

ChromeOS バージョン 146 以降を使用する場合、以前の Citrix Virtual Channel SDK バージョンで構築されたカスタム仮想チャネルは、Manifest V3 Chrome 拡張機能と組み合わせて使用すると、期待どおりに機能しない可能性があります。Manifest V3 と Chrome 拡張機能 API の動作間の互換性の問題がこの問題の原因です。スムーズな仮想チャネルエクスペリエンスのために、Citrix ダウンロードページから最新の VCSDK 2603 バージョン に更新することをお勧めします。[RFHTMCRM-17807]

Virtual Channel SDK の機能強化

2305 リリース以降、ChromeOS 向け Citrix Workspace アプリは Virtual Channel SDK の Window 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-->
    

    注:

    <3rdParty_App1_ExtnID> は externalApps の名前の例として使用され、Citrix Workspace app for ChromeOS にメッセージを送信できます。appid は chrome://extensions サイトから取得してください。

  3. 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 は、マニフェストバージョン 3 を持つ Chrome 拡張機能で HDX SDK をサポートします。

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

ユニファイドコミュニケーション (UC) SDK のサポート

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

詳細については、Tech Zone の記事であるUnified Communications (UC) SDKを参照してください。

WebHID API のリダイレクト

Citrix Workspace app for ChromeOS 用 Unified Communications SDK は、Citrix-WebRTC で定義されている WebHID API のリダイレクトを、いくつかの既知の制限付きで実装しています。

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

注:

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

構成方法

この機能は、以下を使用して有効にできます。

  • Google 管理ポリシー
  • グローバルアプリ構成サービス

Google 管理ポリシー

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

  1. Google 管理ポリシーにサインインします。
  2. デバイス管理 > Chrome 管理 > ユーザー設定 に移動します。
  3. 次の JSON 文字列を、engine_settings キーの下にある policy.txt ファイルに追加します。

    注:

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

    • デバイス > Chrome > アプリと拡張機能 > ユーザーとブラウザ > 拡張機能を検索 > 拡張機能のポリシー。
    • デバイス > Chrome > アプリと拡張機能 > キオスク > 拡張機能を検索 > 拡張機能のポリシー。
    • デバイス > Chrome > アプリと拡張機能 > 管理対象ゲストセッション > 拡張機能を検索 > 拡張機能のポリシー。
  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. 変更を保存します。

グローバルアプリ構成サービス

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

SDK および API