SDKとAPI

HDX™ SDK

  • Citrix Workspaceアプリ for ChromeOSは、サードパーティのChromeアプリが以下に対してロック、ロック解除、および切断を可能にするAPI(実験的API)を導入しています。

  • Citrix Virtual Apps and Desktops
  • 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の機能強化

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

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

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

Citrix Virtual Channel 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アプリ for ChromeOS向けCitrix Virtual Channel SDK」を参照してください。

Virtual Channel SDKの機能強化

リリース2305以降、Citrix Workspaceアプリ for ChromeOSはVirtual Channel SDKでWindow Management APIをサポートしています。Web APIにより、IT管理者はインタラクティブなアプリケーションを作成し、エンドユーザー向けにカスタマイズできます。

  • サードパーティのChromeアプリでAPIを使用する手順

  1. Citrix Workspaceアプリ for ChromeOSの最新バージョンをインストールします。詳細については、Citrixダウンロードページを参照してください。
  2. Citrix Workspaceアプリ 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アプリ for ChromeOSにメッセージを送信できます。appidはchrome://extensionsサイトから取得してください。

  1. Citrix Workspace for ChromeOSでアプリケーションまたはデスクトップセッションを次のように起動します。
  • workspaceappIDの取得

    var workspaceappID = " haiffjcadagjlijoggckpgfnoeiflnem ";

    注記:

    この例では、workspaceappIDはCitrix Workspaceアプリ for ChromeOSのストアバージョンを示します。Citrix Workspaceアプリ for ChromeOSの再パッケージ版を使用している場合は、適切なworkspaceappIDを使用してください。

  • INIからJSON形式へのICAデータの変換

    注記:

  • 通常、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アプリ 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-->
    

sendMessage APIコマンドの詳細については、以下のリンクを参照してください。

https://developer.chrome.com/extensions/runtime#event-onMessageExternal

https://developer.chrome.com/extensions/runtime#method-sendMessage

SDKシナリオでのManifest V3のサポート

リリース2305以降、Citrix Workspaceアプリ for ChromeOSは、Manifest V3を持つChrome拡張機能でのHDX SDKをサポートしています。

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

Unified Communications(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アプリ for ChromeOS向けUnified Communications SDKは、Citrix-WebRTCで定義されているWebHID APIのリダイレクトを実装していますが、いくつかの既知の制限があります。

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

注記:

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

設定方法

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

  • Google管理ポリシー
  • Global App Configurationサービス

Google管理ポリシー

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

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

    注記:

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

    • デバイス > 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. 変更を保存します。

Global App Configurationサービス

管理者は、Workspace Configuration > App Configuration > HDX and Multimedia > MS Teams > Enable webHID redirection および HID Device Blocklist に移動して、この機能を有効にできます。チェックボックスとそれぞれのトグルボタンを選択して、機能を有効にします。

SDKとAPI