SDKおよびAPI

HDX SDK

Chrome向けCitrix Workspaceアプリでは、サードパーティ製アプリをロックおよびロック解除したり、Citrix Virtual Apps and Desktopsセッションから切断したりできるChrome API(実験的なAPI)を導入しました。このAPIによって、埋め込みモードおよびキオスクモードの両方でChrome向け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向けCitrix Workspaceアプリ用の新しい仮想チャネルの作成をサポートします。他のクライアントプラットフォーム用の仮想ドライバーの作成については、Citrixにお問い合わせください。

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

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

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

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

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

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

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

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

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

    注:

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

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

    var workspaceappID = “ haiffjcadagjlijoggckpgfnoeiflnem “;

    注:

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

  • ICAデータをINIからJSON形式に変換します。

    注:

    通常、ICAファイルはINIファイルとしてStoreFrontから取得されます。以下のヘルパー機能でICA INIファイルをJSONに変換します。

//ヘルパー機能でINI形式のicaファイルを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]; } //LaunchReferenceにも「=」が含まれるためにこれが必要です。上の「split(‘=’,2)」では //完全なLaunchReferenceにはなりません。理想的には、次のような形式を使用する必要があります。 //これは、値の一部に「=」を使用する他の変数があるためです。 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; }

  • サードパーティのChromeアプリからChrome向け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);
     }
     });
    
    

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

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

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