Show Menu
SUJETS×

Exemples de magasins candidats ContextHub

ContextHub fournit plusieurs exemples de magasins candidats que vous pouvez utiliser dans vos solutions. Les informations suivantes sont fournies pour chaque exemple :
  • L’emplacement du code source pour pouvoir l’ouvrir à des fins de formation.
  • La configuration des magasins créés à partir des magasins candidats.
  • La structure des données de magasin pour pouvoir y accéder.
Les exemples de candidats au magasin sont fournis comme configurations de référence pour vous aider à créer votre propre configuration dédiée pour votre projet et ne doivent donc pas être utilisés directement.

Exemple de magasin candidat aem.segmentation

Magasin pour les segments ContextHub résolus et non résolus. Récupère automatiquement les segments de SegmentManager ContextHub.

Emplacement du code source

/libs/settings/cloudsettings/legacy/contexthub/segmentation

Implémentation de base

Le magasin candidat aem.segmentation étend ContextHub.Store.PersistedJSONPStore .

Configuration

Lorsque vous créez un magasin aem.segmentation, vous n’avez pas besoin de fournir une configuration détaillée. La configuration par défaut spécifie l’emplacement des définitions de segment ContextHub.
{
   "service":{
      "jsonp":false,
      "timeout":1000,
      "path":"/etc/segmentation/contexthub.segment.js"
   }
}

Exemple de magasin candidat contexthub.geolocation

Le magasin candidat de modèles contexthub.geolocation utilise Google Maps pour obtenir et stocker des informations sur l’emplacement du client.

Emplacement du code source

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

Implémentation de base

The contexthub.geolocation store candidate extends ContextHub.Store.PersistedJSONPStore .

Configuration

La configuration par défaut spécifie des informations sur le service Google et les coordonnées de latitude et de longitude initiales.
{
        "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
        }
    }

Éléments de données

Le magasin utilise une arborescence de données similaire à l’exemple suivant :
{
   "latitude":"37.331375",
   "longitude":"-121.893992"
}

Une stratégie de sécurité introduite dans Chrome 50.x exige que tous les appels liés à la géolocalisation soient effectués via une connexion sécurisée. Par conséquent, AEM force l’utilisation de https pour les appels d’API de géolocalisation si AEM s’exécute également sur https. Sinon, http est utilisé afin de respecter la politique de même origine. Voir cet article de blog Google pour plus de détails sur les changements dans Chrome.

Exemple de magasin candidat contexthub.surferinfo

Stocke des informations sur l’environnement client actuel, telles que l’appareil, la fenêtre, le navigateur, la date et l’heure.

Emplacement source {#source-location-surferinfo

/libs/settings/cloudsettings/legacy/contexthub/surferinfo

Implémentation de base

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

Configuration

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

Éléments de données

Les magasins qui utilisent ce magasin candidat ont un arbre de données similaire à l’exemple suivant :
{
   "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
}

Exemple de magasin candidat granite.emulators

L’exemple de magasin candidat granite.emulators stocke des informations sur les appareils clients.

Emplacement du code source

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

Implémentation de base

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

Configuration

La configuration par défaut inclut une table nommée defaultEmulators qui contient des informations sur différents appareils. Lorsque vous créez un magasin, fournissez des profils d’appareil différents dans la propriété Configuration détaillée selon les besoins, en respectant le format illustré dans l’exemple suivant :
{
   "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
        }
    ]
}

Éléments de données

L’arborescence de données de magasin est similaire à l’exemple suivant :
{
   "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
   }
}

Exemple de magasin candidat granite.profile

Stocke des informations sur l’utilisateur actuel.

Emplacement du code source

/libs/settings/cloudsettings/legacy/contexthub/profile

Implémentation de base

The contexthub.datetime store candidate extends ContextHub.Store.PersistedJSONPStore .

Configuration

La configuration par défaut suivante est utilisée. Vous ne devriez pas changer cette configuration.
{
   "service":{
      "jsonp":false,
      "timeout":1000,
      "path":"${contexthub:/store/profile/path}.infinity.json"
   },
   "initialValues":{"path":"/home/users/a/anonymous"}
}

Éléments de données

Les magasins qui utilisent ce magasin candidat ont un arbre de données similaire à l’exemple suivant :
{
   "displayName":"anonymous",
   "path":"/home/users/6/6zavE_DGre6Ad9Y5E0Ba",
   "avatar":"/etc/designs/default/images/social/avatar.png",
   "authorizableId":"anonymous"
}