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-->
    

    注:

    <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-->
    
  • サードパーティの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」を参照してください。

SDKおよびAPI