Hinzufügen von ContextHub zu Seiten und Zugreifen auf Speicher adding-contexthub-to-pages-and-accessing-stores

CAUTION
AEM 6.4 hat das Ende der erweiterten Unterstützung erreicht und diese Dokumentation wird nicht mehr aktualisiert. Weitere Informationen finden Sie in unserer technische Unterstützung. Unterstützte Versionen suchen here.

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. Auf dieser Seite werden die Hauptfunktionen der API für den Zugriff auf Kontextdaten und die Bearbeitung von Kontextdaten kurz beschrieben. Ausführlichere Informationen und Code-Beispiele finden Sie unter den Links zur API-Referenzdokumentation.

Hinzufügen von ContextHub zu einer Seitenkomponente adding-contexthub-to-a-page-component

Um die ContextHub-Funktionen zu aktivieren und eine Verknüpfung mit den ContextHub-JavaScript-Bibliotheken herzustellen, fügen Sie die ContextHub-Komponente in die head auf Ihrer Seite. Der JSP-Code für Ihre Seitenkomponente ähnelt dem folgenden Beispiel:

<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 wird. Siehe Ein- und Ausblenden der ContextHub-Benutzeroberfläche.

Informationen zu ContextHub-Speichern about-contexthub-stores

Verwenden Sie ContextHub-Stores, um Kontextdaten beizubehalten. ContextHub bietet die folgenden Storetypen, die die Grundlage aller Storetypen bilden:

Alle Speichertypen sind Erweiterungen der Klasse ContextHub.Store.Core. Informationen zum Erstellen eines neuen Storetyps finden Sie unter Erstellen benutzerdefinierter Stores. Weitere Informationen zu Beispiel-Store-Typen finden Sie unter Beispiele für ContextHub-Store-Kandidaten.

Beibehaltungsmodi persistence-modes

ContextHub-Stores verwenden einen der folgenden Persistenzmodi:

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

Standardmäßig verwendet ContextHub den lokalen Persistenzmodus. Wenn der Browser HTML5 localStorage nicht unterstützt oder zulässt, wird die Sitzungspersistenz verwendet. Wenn der Browser HTML5 sessionStorage nicht unterstützt oder zulässt, wird die Persistenz Window.name verwendet.

Store-Daten store-data

Intern speichern Sie Daten in einer Baumstruktur, sodass Werte als primäre Typen oder komplexe Objekte hinzugefügt werden können. Wenn Sie komplexe Objekte zu Stores hinzufügen, bilden die Objekteigenschaften Zweige 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 Speicherdaten kann wie folgt gestaltet werden:

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

Die Baumstruktur definiert Datenelemente im Speicher 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 manipulating-objects

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 interacting-with-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 accessing-store-data

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 Satz von Schlüssel/Wert-Paaren gespeichert. Um Werte zu speichern und abzurufen, geben Sie den entsprechenden Schlüssel an:

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

NOTE
ContextHub kennt nicht standardmäßig die aktuell angemeldeten Benutzer, die auf Veröffentlichungs-Servern verwendet werden, und diese Benutzer werden von ContextHub als "Anonym"betrachtet.
Sie können ContextHub über angemeldete Benutzer informieren, indem Sie den Profilspeicher laden, wie in der implementierten Referenz-Site "We.Retail". Siehe Abschnitt relevanter Code auf GitHub hier.

ContextHub-Ereignisse contexthub-eventing

ContextHub enthält ein Ereignis-Framework, das automatische Reaktionen auf Store-Ereignisse ermöglicht. Jedes Store-Objekt 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 using-context-hub-to-manipulate-cookies

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

Ermitteln aufgelöster ContextHub-Segmente determining-resolved-contexthub-segments

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

ContextHub-Segmente werden unter dem Knoten /conf/we-retail/settings/wcm/segments installiert.

  • weiblich
  • female-over-30
  • female-under-30
  • männlich
  • male-over-30
  • male-under-30
  • order-value-75-to-100
  • order-value-over-100
  • über 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:

  • Weiblich oder männlich wird anhand der gender Datenelement der profile speichern.

  • Das Alter wird anhand des Seitendatenelements des Profilspeichers bestimmt.

  • Die Staffel wird aus dem Datenelement "latitude"des Geolocation speichern und das Monatsdatenelement des surferinfo -Stores.

WARNING
Die installierten Segmente werden als Referenzkonfigurationen bereitgestellt, um Ihnen bei der Erstellung einer eigenen dedizierten Konfiguration für Ihr Projekt zu helfen, und sollten daher nicht direkt verwendet werden.

Protokollieren von Debug-Meldungen für ContextHub logging-debug-messages-for-contexthub

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

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

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

Überblick über das ContextHub-Framework see-an-overview-of-the-contexthub-framework

ContextHub bietet eine Diagnoseseite, auf der Sie einen Überblick über das ContextHub-Framework erhalten.

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e