Product Documentation

Receiver-Erweiterungs-APIs

Jul 07, 2016

In diesem Dokument sind die CSS- und JavaScript-Erweiterungspunkte für Receiver 3.0 aufgeführt. Sofern nicht anders angegeben, gelten diese Erweiterungen für Web- und native Clients.

CSS-Klassen für die Anpassung

Häufig angepasste Bereiche

.logo-container

.logon-logo-container

Unternehmenslogo ersetzt "StoreFront" in den UI-Fenstern und Dialogfeldern zur Authentifizierung. Angabe eines Hintergrundbilds und einer Hintergrundgröße erforderlich.

.theme-header-color

.theme-highlight-color

Primäre Farben für Kopfzeilentext und hervorgehobenen Text. Angabe eines color-Attributs erforderlich.

.theme-header-bgcolor

Primäre Farbe (oder Füllung) für den Kopfzeilenbereich.

.button/.button.default

Primäre Farbe (oder Füllung) für Popup-Schaltflächen und die standardmäßig aktivierte Popup-Schaltfläche.

Markerklassen

.large/.small

.largeTiles/.smallTiles

.highdpi

.myapps-view/.store-view/.desktops-view/.appinfo-view/.search-view

Markerklassen zum Angeben des aktuellen UI-Zustands, die in CSS zur selektiven Änderung der Anzeige benutzerdefinierten Inhalts verwendet werden können.

Bereiche für benutzerdefinierten Inhalt

Dies sind UI-Bereiche, die zum Einfügen benutzerdefinierten Inhalts per Skript vorgesehen sind.

Beispiel:

$('#customTop').html('Hello World');

#customTop

#customScrollTop

#customBottom

Diese sind alle auf der Haupt-Benutzeroberfläche.

#customInfoTop

#customInfo

Diese sind auf der App-Infoseite.

#customExplicitAuthHeader

#customExplicitAuthFooter

#customExplicitAuthTop

#customExplicitAuthBottom

Diese sind alle im explicit auth-Dialogfeld (Anmeldung).

#customAuthHeader

#customAuthFooter

#customAuthTop

#customAuthBottom

Diese sind alle auf der Seite zur Authentifizierungswahl (vor Anmeldung, falls angezeigt).

.customAuthHeader

.customAuthFooter

.customAuthTop

.customAuthBottom

Diese beziehen sich auf die Authentifizierungsseiten.

Skript-Objekte

Die verschiedenen Skript-APIs übergeben bzw. verwenden eine Reihe von JavaScript-Klassen. Sollen Anpassungen über Releases hinweg funktionieren, sind Kenntnisse des Zwecks und der weiteren Entwicklung dieser Klassen erforderlich. Zunächst wurde von Citrix in Erwägung gezogen, sämtliche Receiver-Interna zu verbergen und Schattenobjekte für die API-Verwendung zu erstellen. Dies hätte zwar eine äußerst stabile API ergeben, wäre jedoch zu restriktiv gewesen, denn so wäre zwangsweise der Funktionsbereich von Erweiterungen eingeschränkt worden. Stattdessen wurde beschlossen, die "tatsächlichen" Objekte mit der Warnung offenzulegen, dass zusätzliche Arbeiten bei einem Serverupgrade umso wahrscheinlicher werden, je weiter von den Kern-APIs abgewichen wird. Citrix empfiehlt die wichtigsten Objekteigenschaften beizubehalten, um reibungslose Upgrades zu gewährleisten.

wenn App

{
name: Name der App.
description: Beschreibung.
iconurl: Symbol für die App (nach dem Laden)
subscriptionstatus: Aktueller Status, wenn Abo unterstützt wird
mandatory: True wenn App vorgegeben ist
store: Storeobjekt für diese App
}

category

{
fname: Name des Blattordners.
pname: Vollständiger Pfad zum Ordner.
}

bundle (App-Gruppen mit Highlights)

{
title: Name von "bundle".
description: Beschreibung für "bundle".
tileid: Kachel-ID.
}

native client properties

{
apiversion: derzeit immer 1.1
platform: { id: Plattform-ID, z. B. windows }
preferredLanguages[Gebietsschemamatrix]
}

store

Zurzeit wird in Receiver nur jeweils ein Store angezeigt, das Objekt hat nur eingeschränkte Verwendungsmöglichkeiten. Künftig werden möglicherweise mehrere aggregiert, sodass es wichtig werden kann, zu welchem Store eine App gehört.

jsondata

Dies ist das Datenformat niedriger Ebene vom Server. Siehe Spezifikation für Wire-API.

message box params object

{
localize: Wenn wahr, werden all Zeichenfolgen, die einem Schlüssel im Lokalisierungswörterbuch entsprechen, lokalisiert.
messageText: Anzuzeigender Text
messageTitle: Titel für Meldungsfeld
okButtonText: Optional Schaltflächentext (Standard ist "OK")
cancelButtonText: Optional Schaltflächentext für zweite Schaltfläche (Standard "Abbrechen")
okAction: Funktion, die durch Klicken auf OK aufgerufen wird
cancelAction: Funktion, die durch Klicken auf "Abbrechen" aufgerufen wird (Wird hier nichts angegeben, wird nur eine Schaltfläche angezeigt.)
}

ajax options

{
data: Optional, zu sendende Daten (Zeichenfolge)
headers: Optional, Headerdictionary
type: Anforderungstyp (GET oder POST)
url: aufzurufende URL (relativ zur Seite)
dataType: Typ zurückgebener Daten text/XML/json (optional)
success: Bei Erfolg aufzurufende Funktion
error: Bei Fehler aufzurufende Funktion
}

Skripterweiterunghooks

Diese werden an verschiedenen Stellen der Ausführung aufgerufen und können das Verhalten von Receiver anhalten oder ändern. Um Hooks zu verwenden, definieren Sie eine Funktion in CTXS.Extensions.
Bei Funktionen, die einen Rückruf definieren, muss der Rückruf zum Fortsetzen des Normalbetriebs aufgerufen werden. Beispiel:

CTXS.Extensions.preInitialize = function(callback) {
 alert("just starting");
 callback();
};

Fortschrittsbenachrichtigungen

preInitialize(callback)

postInitialize(callback)

postConfigurationLoaded()

postAppListLoaded()

Während dieser Aufrufe wird die Benutzeroberfläche in systemeigenen Receiver-Versionen möglicherweise ausgeblendet, eine Anzeige der Benutzeroberfläche ist daher riskant.

Bei APIs, die einen Rückruf übergeben, MÜSSEN Sie die Rückruffunktion aufrufen, Sie können den Aufruf jedoch so lange verzögern, bis eigener Code ausgeführt wurde.

beforeLogon(callback)

Nur für Webbrowser. Wird vor Anzeige von Anmeldungsdialogfeldern aufgerufen. Sie können hier "showMessage" aufrufen oder Ihre eigene Benutzeroberfläche hinzufügen.

beforeDisplayHomeScreen(callback)

Für alle Clients, Aufruf vor Anzeige der Haupt-Benutzeroberfläche. Dies ist die ideale Stelle zum Einfügen einer benutzerdefinierten Start-Benutzeroberfläche.

Bei systemeigenen Clients hat sich der Benutzer an dieser Stelle möglicherweise noch nicht angemeldet, da manche Clients den Offlinezugriff auf die Benutzeroberfläche zulassen.

afterDisplayHomeScreen()

Für alle Clients, Aufruf nach Laden und Anzeige der Benutzeroberfläche. Ideale Stelle für das Aufrufen von APIs zum Anpassen der anfänglichen Benutzeroberfläche, z. B. zum Starten in einer anderen Registerkarte.

APIs für die Überwachung der Receiver-Umgebung

noteNativeClient(properties)

Gibt Informationen über den systemeigenen Client zurück. Wird nicht für Webbrowserzugriff aufgerufen.

noteNativeStore(store)

Übergibt Informationen über den Store, auf den der systemeigene Client zugreift, da die Seiten-URI nicht unbedingt aufschlussreich ist.

APIs zum Ändern der angezeigten Anwendungen

preProcessAppData(store,jsondata)

Eine extrem nützliche Funktion niedriger Ebene zum Modifizieren von Anwendungsdaten vor jeglicher Verarbeitung.

noteStartLoadApps(store)

noteApp(app)

Hinweis, dass ein App-Objekt vorhanden ist. Nützlich, wenn Sie bestimmte Apps speichern möchten (z. B. um sie selbst zu starten). Dies wird während der Initialisierung aufgerufen; Sie sollten daher nicht versuchen, das App-Objekt sofort zu verwenden, bis die Initialisierung abgeschlossen ist.

excludeApp(app)

App komplett von der Benutzeroberfläche ausschließen, selbst wenn sie normalerweise eingeschlossen würde.

includeApp(app)

App einschließen, selbst wenn sie normalerweise ausgeschlossen würde. Beispielsweise kann eine Plattform für eine andere Plattform vorgesehene Apps ausschließen.

includeInMyApps(app)

Einschließen einer App in der Favoritenansicht erzwingen.

excludeFromMyApps(app)

Ausschließen einer App aus der Favoritenansicht erzwingen.

APIs zur Platzierung von Symbolen

sortCategoryAppList(app_array, category, defaultSortFn)

sortBundleAppList(app_array, bundle, defaultSortFn)

sortMyAppList(app_array,defaultSortFn)

filterAllAppsDisplay(app_array,defaultSortFn)

filterDesktops(app_array,defaultSortFn)

Mit diesen APIs können die Apps in einer bestimmten Ansicht sortiert oder gefiltert werden. Sie sollten die Matrix der Apps an Ort und Stelle modifizieren.

Denken Sie daran, dass die Favoriten (Ansicht "Eigene Apps") standardmäßig vom Benutzer umgeordnet werden können, sodass eine Sortierung der Liste hier zu Verwirrung führen kann, es sei denn, Sie deaktivieren die Umordnung durch die Benutzer.

APIs für die Aktualisierung der Benutzeroberfläche

preRedraw()

postRedraw()

Dies sind Allround-Funktionen niedriger Ebene, die eine Benutzeroberfläche mit fehlerhaftem Verhalten korrigieren sollen. Der Neuaufbau unterliegt prinzipiell dem Browser, sodass hier tatsächlich vor bzw. nach signifikanten Benutzeroberflächenereignissen, z. B. dem Ändern der Ansicht, gemeint ist. Im Allgemeinen gibt es spezifischere Rückrufe für Benutzeroberflächenänderungen.

beforeShowAppInfo(app)

Wird vor der Anzeige der Detailseite für eine App aufgerufen. Nützlich zum Optimieren der anzuzeigenden Schaltflächen/Informationen.

onFolderChange(folder path)

Wird in der Store-Ansicht aufgerufen, wenn der Ordner geändert wird, und übergibt den Pfad. Wird außerdem zum Übergeben von "" aufgerufen, wenn in der Store-Ansicht eine andere als eine Ordneransicht ausgewählt wird.

onViewChange(view name)

Wird aufgerufen, wenn die Ansicht geändert wird.

onAppHTMLGeneration(element)

Wird aufgerufen, wenn für eine oder mehrere App-Kacheln HTML generiert wird, und übergibt den übergeordneten Container. Nur für tiefgreifende Anpassung vorgesehen. (Achtung: Änderungen dieser Art sind wahrscheinlich versionsspezifisch.)

useNativeMessageBox(message id title or text)

Wird aufgerufen, wenn ein systemeigenes Dialogfeld, anstatt eines Webdialogfelds für eine Meldung angezeigt werden soll. Sie können "False" zurückgeben, damit das Webdialogfeld verwendet wird. Manche Fehlermeldungen kommen vom systemeigenen Code und können nicht an Web-UIs umgeleitet werden.

showMessageBox(params,defaultMessageBoxFn)

Außerkraftsetzung des (Web-)Dialogfelds für alle Fehler und ähnliche Meldungen zulassen, damit eine Ersatzfunktion verwendet werden kann.

APIs für vom Benutzer initiierte Vorgänge

Durch Aufruf der angegebenen Funktion wird die Aktion fortgesetzt. Wird sie nicht aufgerufen, wird die Aktion abgebrochen.

doLaunch(app,launchFn)

postLaunch(app,status)

 

doSubscribe(app,subscribeFn)

postSubscribe(app)

 

doRemove(app, removeFn)

postRemove(app)

 

doInstall(app,installFn)

postInstall(app)

APIs zur ausschließlichen Verwendung für Webbrowser

includeAuthenticationMethod(authenticationMethod)

excludeAuthenticationMethod(authenticationMethod)

showWebReconnectMenu(bool_showByDefault)

showWebDisconnectMenu(bool_showByDefault)

webReconnectAtStartup(bool_ReconnectByDefault)

webLogoffIcaAction(string_defaultAction)

beforeWebLogoffIca()

Durch Zurückgeben von "false" wird die ICA-Abmeldung/-Verbindungstrennung verhindert.

beforeWebLogoffWebSession()

Durch Zurückgeben von "false" wird die Websitzungsbeendigung verhindert.

beforeWebLogoffGateway

Durch Zurückgeben von "false" wird die Gateway-Sitzungsbeendigung verhindert.

afterWebLogoffComplete

Aktions-APIs

Diese Funktionen können aufgerufen werden, um etwas auszulösen, z. B. das Starten einer App oder das Anzeigen eines Meldungsfelds. Diese APIs werden im CTXS.ExtensionAPI-Objekt definiert.

addPlugin(...)

Hinzufügen eines verwalteten Plug-Ins (verpackte Reihe von Erweiterungen). Vorbehalten.

showMessage(data)

Anzeigen eines Meldungsfelds. Daten sind messageText, messageTitle, okButtonText, cancelButtonText, okButtonAction, cancelButtonAction.

resize()

Meldung an Receiver, dass die Größe benutzerdefinierter Elemente geändert wurde und eine Umordnung des Inhalts erforderlich sein kann.

trace(message)

Senden einer Ablaufverfolgungsmeldung an das zugrunde liegende Ablaufverfolgungssystem.

refresh()

Aktualisieren der Anwendungslisten vom Server. Kann Nebenwirkungen haben, z. B. eine erneute Verbindung und/oder Authentifizierungsaufforderungen.

changeView(view,view title)

Ändern der aktuellen Ansicht. Für über Erweiterungen hinzugefügte Ansichten geben Sie außerdem den Titel an, der angezeigt werden soll.

Ein Wechsel zur App-Infoansicht bedeutet, dass die Informationen der letzten App, für die Informationen angezeigt wurden, aufgerufen werden, bzw. der Homebildschirm, wenn dies nicht mehr gültig ist. Ein Wechsel zur Ansicht "Suche" wird nicht unterstützt.

addToolbarButton(text,button_class,optional_htmlContent,optional_onClickFn)

Symbolleistenschaltflächen werden nur in der Apps-Ansicht standardmäßig angezeigt.

addViewButton(view class,button text,view title)

Hinzufügen einer Ansicht-Schaltfläche zusätzlich zu "Favoriten", "Desktops" und "Apps".

addInfoButton(text label, button class,onClickFn)

Hinzufügen einer Schaltfläche zur App-Infoansicht.

addHelpButton(onClickFn)

Hinzufügen einer Hilfe-Schaltfläche zur Benutzeroberflächen-Kopfzeile.

localStorageGetItem(name,callback fn)

Abrufen eines Elements aus dem lokalen Webspeicher oder dem systemeigenen Äquivalent. Die Rückruffunktion wird aufgerufen und übergibt den Wert, die Rückgabe kann asynchron sein.

localStorageSetItem(name,value,optional callback fn)

Abrufen eines Elements aus dem lokalen Webspeicher oder dem systemeigenen Äquivalent. Name und Wert müssen Zeichenfolgen sein. Der Rückruf wird einmal aufgerufen, wenn der Wert gespeichert wurde.

openUrl(url)

Öffnen einer URL in einer neuen Browserregisterkarte oder mit dem lokalen Webbrowser. Rufen Sie nicht "window.open" auf, da dies bei systemeigenen Receiver-Versionen nicht funktioniert.

proxyRequest(options,bool_loginFirst)

Proxy ruft einen Webdienst auf. "options" ist ein Teilsatz der JQuery ajax-Anforderungsoptionen.

Dies wird nur für den Zugriff auf den Server empfohlen, der die Benutzeroberfläche von Receiver hostet. Der Zugriff auf andere Server kann durch Sicherheitsrichtlinien des Browsers und/oder systemeigene Sicherheitsrichtlinien beschränkt sein.

enableSubscriptionProperties()

Aktivieren der Abonnementeigenschaften und erweiterten App-Eigenschaften bei der Kommunikation mit dem Server.

updateSubscriptionProperties(app,callback)

Aktualisieren der auf dem Server gespeicherten Abonnementeigenschaften für eine App zum Abgleich mit dem Objekt im Speicher. Die Rückruffunktion wird bei Abschluss aufgerufen und gibt eine Statuszeichenfolge zurück.

launch(app)

Starten einer App oder eines Desktops.