Show Menu
THEMEN×

Beispiele für ContextHub-Store-Kandidaten

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.
Die Beispielspeicherkandidaten werden als Referenzkonfigurationen bereitgestellt, um Ihnen bei der Erstellung Ihrer eigenen dedizierten Konfiguration für Ihr Projekt zu helfen und sollten daher nicht direkt verwendet werden.

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/settings/cloudsettings/legacy/contexthub/segmentation

Basisimplementierung

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

Konfiguration

When you create an aem.segmentation store, you do not need to provide a detailed configuration. Die Standardkonfiguration gibt das Verzeichnis Ort der ContextHub-Segmentdefinitionen an.
{
   "service":{
      "jsonp":false,
      "timeout":1000,
      "path":"/etc/segmentation/contexthub.segment.js"
   }
}

Beispiel-Store-Kandidat „contexthub.geolocations“

The contexthub.geolocation sample store candidate uses Google Maps to obtain and store information about the client location.

Quellpfad

/libs/settings/cloudsettings/legacy/contexthub/geolocation

Basisimplementierung

The contexthub.geolocation store candidate extends 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"
}

Eine in Chrome 50.x eingeführte Sicherheitsrichtlinie erfordert, dass alle Geolocation-bezogenen Aufrufe ü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/settings/cloudsettings/legacy/contexthub/surferinfo

Basisimplementierung

The contexthub.surferinfo store candidate extends ContextHub.Store.PersistedStore .

Konfiguration

The default configuration is inherited from ContextHub.Store.PersistedStore .

Datenelemente

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 „granite.emulators

The granite.emulators sample store candidate stores information about client devices.

Quellpfad

/libs/settings/cloudsettings/legacy/contexthub/emulators

Basisimplementierung

The granite.emulators store candidate extends 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/settings/cloudsettings/legacy/contexthub/profile

Basisimplementierung

The granite.profile store candidate extends 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"}
}

Datenelemente

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"
}