SDKおよびAPI

HDX SDK

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

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

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

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

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

Citrix仮想チャネルSDK

Citrix仮想チャネルソフトウェア開発キット(SDK)は、ICAプロトコルを使用する追加の仮想チャネルのための、サーバー側アプリケーションやクライアント側ドライバーの作成をサポートします。

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

仮想チャネルSDKには、以下のものが用意されています。

  • Citrix Server API SDK(WFAPI SDK)の仮想チャネルとともに使用して、新しい仮想チャネルを容易に作成できるインターフェイス。

  • プログラミングテクニックの実例となるいくつかの仮想チャネルサンプルプログラムの、実際に機能するソースコード。

  • 仮想チャネルSDKでは、WFAPI SDKで仮想チャネルのサーバー側を作成する必要があります。

仮想チャネル(VC)SDKについて詳しくは、Chrome向けCitrix Workspaceアプリ用Citrix仮想チャネルSDKに関するドキュメントを参照してください。

VC SDKの例については、VC SDKの例を参照してください。

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

  1. 最新バージョンのChrome OS向けCitrix Workspaceアプリをインストールします。詳しくは、Citrixダウンロードページを参照してください。
  2. Chrome OS向けCitrix Workspaceアプリのポリシーファイルを追加して、サードパーティのChromeアプリを許可リストに登録します。Chromeの管理設定を使用して、ポリシーを追加します。 詳しくは、Googleサポートの組織部門単位でのChromeアプリの管理を参照してください。 以下は、サードパーティChromeアプリをホワイトリストに登録するためのサンプルpolicy.txtファイルです:

    {
          "settings": {
                 "Value": {
                 "settings_version": "1.0",
                 "store_settings": {
                 "externalApps": [“<3rdParty_App1_ExtnID>”,“<3rdParty_App2_ExtnID>”]
                                   }
                           }
                    }
    }
    <!--NeedCopy-->
    

    注:

    <3rdParty_App1_ExtnID>は、externalAppsの名前の例として使用され、Chrome OS向けCitrix Workspaceアプリにメッセージを送信できます。chrome://extensionsサイトからappidを取得します。

  3. 以下の手順に従って、Chrome OS向けCitrix Workspaceアプリでアプリケーションまたはデスクトップセッションを起動します:
  • workspaceappIDを取得します。

    var workspaceappID = " haiffjcadagjlijoggckpgfnoeiflnem ";

    注:

    この例で、workspaceappIDはChrome OS向けCitrix Workspaceアプリのストアバージョンです。Chrome OS向け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アプリからChrome OS向け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およびAPI