Sie sehen sich Hilfeinhalte der folgenden Version an:

ContextHub bietet mehrere Beispiele für Store-Kandidaten, die Sie in Ihren Lösungen verwenden können. Die folgenden Informationen werden für jedes Beispiel bereitgestellt:

  • Gibt an, wo der Quellcode zu finden ist, damit Sie ihn zum Lernen öffnen können.
  • Wie werden die Stores konfiguriert, die Sie aus den Store-Kandidaten erstellen.
  • Wie sind die Store-Daten strukturiert, dasmit Sie darauf zugreifen können.

Beispiel-Store-Kandidat „aem.segmentations“

Store für gelöste und ungelöste ContextHub-Segmente. Ruft automatisch Segmente aus dem ContextHub SegmentManager zurück.

Quellpfad

/libs/cq/contexthub/components/stores/segmentation

Basisimplementierung

Der Store-Kandidat aem.segmentations erweitert ContextHub.Store.PersistedJSONPStore.

Konfiguration

Wenn Sie einen aem.segmentation-Store erstellen, ist es nicht erforderlich, eine detaillierte Konfiguration zur Verfügung zu stellen. Die Standardkonfiguration gibt das Verzeichnis Ort der ContextHub-Segmentdefinitionen an.

{
   "service":{
      "jsonp":false,
      "timeout":1000,
      "path":"/etc/segmentation/contexthub.segment.js"
   }
}

Beispiel-Store-Kandidat „aem.resolvedsegments“

Speichert die aktuell gelösten Segmente. Hört auf den ContextHub SegmentManager-Dienst automatisch, um den Store automatisch zu aktualisieren.

Quellpfad

/libs/cq/contexthub/components/stores/resolvedsegments

Basisimplementierung

Der Beispiel-Store-Kandidat „aem.resolvedsegments“ erweitert ContextHub.Store.SessionStore.

Konfiguration

Die Standardkonfiguration wird von ContextHub.Store.SessionStore übernommen.

Datenbaum

Stores, die diesen Store-Kandidaten verwenden, haben eine Datenstruktur, die dem folgenden Beispiel ähnelt:

{
   "segments":[],
   "summary":"No segment"
}

Beispiel-Store-Kandidat „contexthub.datetime“

Speichert das aktuelle Datum und die Uhrzeit des Kunden.

Quellpfad

/libs/granite/contexthub/components/stores/datetime

Basisimplementierung

Der Store-Kandidat „contexthub.datetime“ erweitert ContextHub.Store.PersistedStore

Konfiguration

Die Standardkonfiguration wird von ContextHub.Store.PersistedStore übernommen.

Datenbaum

Stores, die diesen Store-Kandidaten verwenden, haben eine Datenstruktur, die dem folgenden Beispiel ähnelt:

{
   "date":{
      "year":2015,
      "month":7,
      "day":22
   },
   "time":{
      "hours":11,
      "minutes":52,
      "seconds":28,
      "milliseconds":27,
      "timezoneOffset":240
   },
   "formatted":{
      "utc":{
         "date":{
            "year":2015,
            "month":6,
            "day":3
         },
         "time":{
            "hours":15,
            "minutes":52,
            "seconds":28,
            "milliseconds":29
         }
      },
      "iso":"2015-07-22T15:52:28Z",
      "locale":{
         "date":"7/22/2015",
         "time":"11:52:28 AM"
      }
   },
   "season":"Spring"
}

Beispiel-Store-Kandidat „contexthub.generic-jsonp“

Speichert Daten aus einem JSONP-Dienst. Ein Beispiel für eine Store-Konfiguration für diesen Store-Kandidaten finden Sie unter .

Quellpfad

/libs/granite/contexthub/components/stores/generic-jsonp

Basisimplementierung

Der Store-Kandidat „contexthub.datetime“ erweitert ContextHub.Store.PersistedJSONPStore

Konfiguration

Wenn Sie einen Store erstellen, der auf diesem Store-Kandidaten basiert, müssen Sie ein Dienstobjekt bereitstellen, das Details zum aufzurufenden JSONP-Dienst enthält. Der folgende JSON-Code veranschaulicht das zu verwendete erforderliche Format für das Serviceobjekt:

{ 
   "service": { 
      "jsonp": false, 
      "timeout": 1000, 
      "ttl": 1800000, 
      "secure": false, 
      "host": "md5.jsontest.com", 
      "port": 80, 
      "params":{ 
         "text":"text to md5" 
      } 
   } 
}

Datenbaum

Die Daten, die der JSONP-Dienst zurückgibt, bestimmen den Datenbaum des Stores. 

Beispiel-Store-Kandidat „contexthub.geolocations“

Der Beispiel-Store-Kandidat „contexthub.geolocation“ verwendet Google Maps zum Abrufen und Speichern von Informationen zum Clientstandort. 

Quellpfad

/libs/granite/contexthub/components/stores/geolocation

Basisimplementierung

Der Store-Kandidat „contexthub.geolocation“ erweitert ContextHub.Store.PersistedJSONPStore

Konfiguration

Die Standardkonfiguration enthält Informationen zum Google-Dienst und die anfänglichen Längen- und Breitenkoordinaten.

{
        "service": {
            "jsonp": false,
            "timeout": 1000,
            "ttl": 1800000,
            "secure": false,
            "host": "maps.googleapis.com",
            "port": 80,
            "path": "/maps/api/geocode/json"
        },

        "eventDeferring": 16,

        "html5coordinatesDiscoveryAPI": {
            "timeout": 30000,
            "ttl": 900000,
            "highAccuracy": false
        },

        "initialValues": {
            "latitude": 37.331375,
            "longitude": -121.893992
        }
    }

Datenelemente

Der Store verwendet einen Datenbaum, der dem folgenden Beispiel ähnelt:

{
   "latitude":"37.331375",
   "longitude":"-121.893992"
}

Hinweis:

Eine in Chrome 50.x eingeführte Sicherheitsrichtlinie erfordert, dass alle Geolocation-bezogenen Anrufe über eine gesicherte Verbindung erfolgen. Daher erzwingt AEM die Verwendung von https für Geolocation-API-Aufrufe, wenn AEM auch über https ausgeführt wird. Andernfalls wird http verwendet, um der Richtlinie gleichen Ursprungs zu entsprechen. In diesem Google-Blogpost erhalten Sie weitere Informationen zu den Änderungen in Chrome.

Beispiel-Store-Kandidat „contexthub.surferinfo“

Speichert Informationen über die aktuelle Clientumgebung wie Gerät, Fenster, Browser, Datum und Uhrzeit.

Quellpfad

/libs/granite/contexthub/components/stores/profile

Basisimplementierung

Der Store-Kandidat „contexthub.datetime“ erweitert ContextHub.Store.PersistedStore

Konfiguration

Die Standardkonfiguration wird von ContextHub.Store.PersistedStore übernommen.

Datenbaum

Stores, die diesen Store-Kandidaten verwenden, haben eine Datenstruktur, die dem folgenden Beispiel ähnelt:

{
   "display":{
      "resolution":{
         "width":1440,
         "height":900
      },
      "devicePixelRatio":1,
      "colorDepth":24,
      "nrOfColors":16777216,
      "pixelsPerInch":96,
      "orientation":{
         "mode":"landscape",
         "direction":"normal"
      }
   },
   "window":{
      "dimension":{
         "width":1395,
         "height":652
      },
      "percentageUsage":0.7
   },
   "browser":{
      "version":"39.0",
      "family":"Firefox",
      "userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:39.0) Gecko/20100101 Firefox/39.0"
   },
   "device":{
      "category":"Desktop",
      "type":"Desktop",
      "model":"PC",
      "version":""
   },
   "isMobile":true,
   "os":{
      "name":"Mac OS X",
      "version":"10"
   },
   "year":2015,
   "month":7,
   "day":22,
   "hour":14,
   "minutes":1
}

Beispiel-Store-Kandidat „contexthub.tagcloud“

Der Beispiel-Store-Kandidat „granite.tagcloud“ speichert Informationen zur Tag-Nutzung. Optional kann der Store automatisch Tags aus benannten HTML-Elementen hinzufügen.

Quellpfad

/libs/granite/contexthub/components/stores/tagcloud

Basisimplementierung

Der Store-Kandidat „contexthub.geolocation“ erweitert ContextHub.Store.PersistedStore

Konfiguration

Konfigurieren Sie Stores, die auf diesem Store-Kandidaten basieren, mithilfe eines Objekts, das die folgenden Elemente enthält:

  • parseMeta: (Boolesch) ob Tags aus HTML-Meta-Elementen hinzugefügt werden sollen, die auf der Seite vorhanden sind.
  • metaName: (String) Wenn parseMeta auf true eingestellt ist, der Wert des name-Attributs des Meta-Elements, das die Tags enthält.
  • tags[]: (String) ein Array von Tags, die dem Store hinzugefügt werden.

Stellen Sie nach Bedarf in der Detailkonfiguration verschiedene Geräteprofile bereit. Die folgende Konfiguration ist der Standardwert:

{
   "parseMeta":true,
   "metaName":"ch.tagcloud",
   "tags":[]
}

Datenbaum

Stores, die diesen Store-Kandidaten verwenden, haben einen Datenbaum, der dem folgenden Beispiel ähnlich ist. Der Store enthält die Tags tag1 und tag2.

{
   "default":{
      "tag1":{
         ".count":1
      },
      ".recentAdded":{
         "name":"default:tag2",
         "count":1
      },
      "tag2":{
         ".count":1
      }
   },
   ".recentAdded":{
      "name":"default:tag2",
      "count":1
   }
}

Beispiel-Store-Kandidat „granite.emulators

Der Beispiel-Store-Kandidat „granite.emulators“ speichert Informationen über Kundengeräte. 

Quellpfad

/libs/granite/contexthub/components/stores/emulators

Basisimplementierung

Der Store-Kandidat „contexthub.geolocation“ erweitert ContextHub.Store.PersistedStore

Konfiguration

Die Standardkonfiguration enthält ein Array namens defaultEmulators, das Informationen über verschiedene Geräte enthält. Wenn Sie einen Store erstellen, stellen Sie verschiedene Geräteprofile nach Bedarf in der Detailkonfigurationseigenschaft mithilfe des Formats bereit, das im folgenden Beispiel veranschaulicht wird:

{ 
   "defaultEmulators":[       
        {
            "id": "iphone-6",
            "title": "iPhone 6",
            "type": "mobile",
            "platform": "iOS",
            "platformVersion": "8.1.3",
            "width": 750,
            "height": 1334,
            "canRotate": true,
            "orientation": "Portrait",
            "device-pixel-ratio": 2
        },
        {
            "id": "iphone-6-plus",
            "title": "iPhone 6 Plus",
            "type": "mobile",
            "platform": "iOS",
            "platformVersion": "8.1.3",
            "width": 1080,
            "height": 1920,
            "canRotate": true,
            "orientation": "Portrait",
            "device-pixel-ratio": 3
        },
        {
            "id": "galaxy-s4",
            "title": "Samsung Galaxy S4",
            "type": "mobile",
            "platform": "Android",
            "platformVersion": "4.4.2 KitKat",
            "width": 1080,
            "height": 1920,
            "canRotate": true,
            "orientation": "Portrait",
            "device-pixel-ratio": 3
        }
    ]
}

Datenelemente

Der Store-Datenbaum ähnelt dem folgenden Beispiel:

{
   "devices":[
      {"id":"native",
      "title":"Native",
      "type":"screen",
      "width":1395,
      "height":374,
      "orientation":"Landscape",
      "platform":"Mac OS X",
      "platformVersion":"10",
      "canRotate":false
      },
      {"id":"ipad-3",
      "title":"iPad 3 / 4 / Air",
      "type":"tablet",
      "platform":"iOS",
      "platformVersion":"8.1.3",
      "width":1536,
      "height":2048,
      "canRotate":true,
      "orientation":"Portrait",
      "device-pixel-ratio":2
      },
      {"id":"iphone-6",
      "title":"iPhone 6",
      "type":"mobile",
      "platform":"iOS",
      "platformVersion":"8.1.3",
      "width":750,
      "height":1334,
      "canRotate":true,
      "orientation":"Portrait",
      "device-pixel-ratio":2
      },
      {"id":"galaxy-s4",
      "title":"Samsung Galaxy S4",
      "type":"mobile",
      "platform":"Android",
      "platformVersion":"4.4.2 KitKat",
      "width":1080,
      "height":1920,
      "canRotate":true,
      "orientation":"Portrait",
      "device-pixel-ratio":3
      }
   ],
   "currentDeviceId":"native",
   "orientations":[
      {"id":"landscape",
      "title":"Landscape"
      },
      {"id":"portrait",
       "title":"Portrait"
      }
   ],
   "currentDevice":{
      "id":"native",
      "title":"Native",
      "type":"screen",
      "width":1395,
      "height":374,
      "orientation":"Landscape",
      "platform":"Mac OS X",
      "platformVersion":"10",
      "canRotate":false
   }
}

Beispiel-Store-Kandidat „granite.profile“

Informationen über den aktuellen Benutzer.

Quellpfad

/libs/granite/contexthub/components/stores/profile

Basisimplementierung

Der Store-Kandidat „contexthub.datetime“ erweitert ContextHub.Store.PersistedJSONPStore

Konfiguration

Die folgende Standardkonfiguration wird verwendet. Sie sollten diese Konfiguration nicht ändern.

{
   "service":{
      "jsonp":false,
      "timeout":1000,
      "path":"${contexthub:/store/profile/path}.infinity.json"
   },
   "initialValues":{"path":"/home/users/a/anonymous"}
}

Datenbaum

Stores, die diesen Store-Kandidaten verwenden, haben eine Datenstruktur, die dem folgenden Beispiel ähnelt:

{
   "displayName":"anonymous",
   "path":"/home/users/6/6zavE_DGre6Ad9Y5E0Ba",
   "avatar":"/etc/designs/default/images/social/avatar.png",
   "authorizableId":"anonymous"
}

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