Sie sehen sich Hilfeinhalte der folgenden Version an:

Fügen Sie Ihren Seiten ContextHub hinzu, um die ContextHub-Funktionen zu aktivieren und eine Verknüpfung mit den ContextHub-JavaScript-Bibliotheken herzustellen.

Die ContextHub-JavaScript-API ermöglicht den Zugriff auf die von ContextHub verwalteten Kontextdaten. Diese Seite enthält einen kurzen Überblick über die wichtigsten Funktionen der API für den Zugriff auf Kontextdaten und deren Bearbeitung. Ausführlichere Informationen und Codebeispiele finden Sie unter den Links zur API-Referenzdokumentation. 

Hinzufügen von ContextHub zu einer Seitenkomponente

Schließen Sie die contexthub-Komponente in den Bereich head Ihrer Seite ein, um die ContextHub-Funktionen zu aktivieren und eine Verknüpfung mit den ContextHub-JavaScript-Bibliotheken herzustellen. Der JSP-Code für Ihre Seitenkomponente sieht in etwa wie im folgenden Beispiel aus:

<head>
   <sling:include path="contexthub" resourceType="granite/contexthub/components/contexthub" />
</head>

Beachten Sie, dass Sie auch konfigurieren müssen, ob die ContextHub-Symbolleiste im Vorschaumodus angezeigt werden soll. Siehe Ein- und Ausblenden der ContextHub-Benutzeroberfläche.

Informationen zu ContextHub-Speichern

Verwenden Sie ContextHub-Speicher, um Kontextdaten beizubehalten. ContextHub bietet folgende Arten von Speichern, die die Grundlage für alle Speichertypen bilden:

Alle Speichertypen sind Erweiterungen der Klasse ContextHub.Store.Core. Weitere Informationen zur Erstellung eines neuen Speichertyps finden Sie unter Erstellen benutzerdefinierter Speicher. Weitere Informationen zu Beispielspeichertypen finden Sie unter Beispielkandidaten für ContextHub-Speicher.

Beibehaltungsmodi

ContextHub-Speicher verwenden einen der folgenden Beibehaltungsmodi:

  • Lokal: Verwendet „localStorage“ (HTML5), um Daten beizubehalten. Lokaler Speicher wird im Browser sitzungsübergreifend beibehalten.
  • Sitzung: Verwendet „sessionStorage“ (HTML5), um Daten beizubehalten. Sitzungsspeicher wird für die Dauer der Browsersitzung beibehalten und steht für alle Browserfenster zur Verfügung.
  • Cookie: Verwendet die native Cookie-Unterstützung des Browsers für die Datenspeicherung. Cookie-Daten werden in HTTP-Anforderungen an den bzw. vom Server gesendet.
  • Window.name: Verwendet die Eigenschaft „window.name“, um Daten beizubehalten. 
  • Speicher: Verwendet ein JavaScript-Objekt, um Daten beizubehalten. 

ContextHub verwendet standardmäßig den lokalen Beibehaltungsmodus. Falls der Browser „localStorage“ (HTML5) nicht unterstützt oder nicht zulässt, wird die Sitzungsbeibehaltung verwendet. Falls der Browser „sessionStorage“ (HTML5) nicht unterstützt oder nicht zulässt, wird die Beibehaltung vom Typ „Window.name“ verwendet. 

Store-Daten

Store-Daten bilden intern eine Baumstruktur. Dadurch können Werte als primäre Typen oder als komplexe Objekte hinzugefügt werden. Wenn Sie Stores komplexe Objekte hinzufügen, bilden die Objekteigenschaften Verzweigungen in der Datenstruktur. Im folgenden Beispiel wird das folgende komplexe Objekt einem leeren, als Store bezeichneten Ort hinzugefügt:

Object {
   number: 321,
   data: {
      city: "Basel",
      country: "Switzerland",
      details: {
         population: 173330,
         elevation: 260
      }
   }
}

Die Baumstruktur der Store-Daten kann wie folgt dargestellt werden:

/
|- number
|- data
      |- city
      |- country
      |- details
            |- population
            |- elevation

Die Baumstruktur definiert Datenelemente im Store als Schlüssel-Wert-Paare. Im obigen Beispiel entspricht der Schlüssel /number dem Wert 321 und der Schlüssel /data/country dem Wert Switzerland.

Bearbeiten von Objekten

Für die Bearbeitung von JavaScript-Objekten stellt ContextHub die Klasse ContextHub.Utils.JSON.tree bereit. Mithilfe der Funktionen dieser Klasse können Sie JavaScript-Objekte bearbeiten, bevor Sie sie einem Store hinzufügen oder nachdem Sie sie aus einem Store abgerufen haben.

Darüber hinaus bietet die Klasse ContextHub.Utils.JSON Funktionen zum Serialisieren von Objekten zu Zeichenfolgen und zum Deserialisieren von Zeichenfolgen zu Objekten. Verwenden Sie diese Klasse zur Behandlung von JSON-Daten, um Browser zu unterstützen, die nativ nicht über die Funktionen JSON.parse und JSON.stringify verfügen.

Interagieren mit ContextHub-Stores

Verwenden Sie das JavaScript-Objekt ContextHub, um einen Store als JavaScript-Objekt abzurufen. Nach dem Abrufen des Store-Objekts können Sie die darin enthaltenen Daten bearbeiten. Verwenden Sie zum Abrufen des Stores die Funktion getAllStores oder getStore.

Zugreifen auf Store-Daten

Die JavaScript-Klasse ContexHub.Store.Core definiert mehrere Funktionen für die Interaktion mit Store-Daten. Die folgenden Funktionen ermöglichen das Speichern und Abrufen mehrerer in Objekten enthaltener Datenelemente:

Einzelne Datenelemente werden als Schlüssel-Wert-Paare gespeichert. Zum Speichern und Abrufen von Werten muss der entsprechende Schlüssel angegeben werden:

Beachten Sie, dass benutzerdefinierte Speicherkandidaten weitere Funktionen definieren können, die den Zugriff auf Store-Daten ermöglichen.

Hinweis:

Standardmäßig sind ContextHub die derzeit bei Veröffentlichungsservern angemeldeten Benutzer nicht bekannt und solche Benutzer werden von ContextHub als anonyme Benutzer betrachtet.

Sie können dafür sorgen, dass ContextHub angemeldete Benutzer erkennt, indem Sie den Profilspeicher laden, wie in der We.Retail-Referenzsite implementiert. Den relevanten Code finden Sie auf GitHub.

ContextHub-Ereignisse

ContextHub enthält ein Ereignisframework, das automatische Reaktionen auf Store-Ereignisse ermöglicht. Jedes Storeobjekt enthält ein Objekt vom Typ ContextHub.Utils.Eventing, das als Eigenschaft eventing des Stores verfügbar ist. Verwenden Sie die Funktion on oder once, um eine JavaScript-Funktion an ein Store-Ereignis zu binden.

Bearbeiten von Cookies mithilfe von ContextHub

Die ContextHub-API bietet browserübergreifende Unterstützung für die Behandlung von Browser-Cookies. Der Namespace ContextHub.Utils.Cookie definiert eine Reihe von Funktionen zum Erstellen, Bearbeiten und Löschen von Cookies.

Ermitteln aufgelöster ContextHub-Segmente

Mit der ContextHub-Segment-Engine können Sie ermitteln, welche der registrierten Segmente im aktuellen Kontext aufgelöst werden. Verwenden Sie die Funktion „getResolvedSegments“ der Klasse ContextHub.SegmentEngine.SegmentManager, um aufgelöste Segmente abzurufen. Verwenden Sie anschließend die Funktion getName oder getPath der Klasse ContextHub.SegmentEngine.Segment, um auf ein Segment zu testen.

Installierte Segmente

ContextHub-Segmente werden unter dem Knoten /etc/segmentation/contexthub installiert.

  • female
  • female-over-30
  • female-under-30
  • male
  • male-over-30
  • male-under-30
  • order-value-75-to-100
  • order-value-over-100
  • over-30
  • summer
  • summer-female
  • summer-female-over-30
  • summer-female-under-30
  • summer-male
  • summer-male-over-30
  • summer-male-under-30
  • under-30
  • winter
  • winter-female
  • winter-female-over-30
  • winter-female-under-30
  • winter-male
  • winter-male-over-30
  • winter-male-under-20

Die Regeln zur Auflösung dieser Segmente werden wie folgt zusammengefasst:

  • „female“ oder „male“ wird auf der Grundlage des Datenelements gender des Stores profile bestimmt.
  • Das Alter wird auf der Grundlage des Datenelements „age“ des Stores „profile“ bestimmt.
  • Die Jahreszeit wird auf der Grundlage des Datenelements „latitude“ des Stores geolocation und auf der Grundlage des Datenelements „month“ des Stores „surferinfo“ bestimmt.

Protokollieren von Debugmeldungen für ContextHub

Konfigurieren Sie den Adobe Granite ContextHub-OSGi-Dienst (PID = com.adobe.granite.contexthub.impl.ContextHubImpl) für die Protokollierung detaillierter Debugmeldungen, die bei der Entwicklung hilfreich sind.

Der Dienst kann entweder mithilfe der Web-Konsole oder mit einem JCR-Knoten im Repository konfiguriert werden:

  • Web-Konsole: Wählen Sie zum Protokollieren von Debugmeldungen die Debugeigenschaft aus.
  • JCR-Knoten: Legen Sie zum Protokollieren von Debugmeldungen die boolesche Eigenschaft com.adobe.granite.contexthub.debug auf true fest.

Überblick über das ContextHub-Framework

ContextHub bietet eine Diagnoseseite, auf der Sie sich einen Überblick über das ContextHub-Framework verschaffen können.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie