Aggiunta di ContextHub alle pagine e accesso agli store adding-contexthub-to-pages-and-accessing-stores

Aggiungi ContextHub alle pagine per abilitare le funzioni di ContextHub e per collegare le librerie JavaScript di ContextHub.

L’API JavaScript di ContextHub consente di accedere ai dati contestuali gestiti da ContextHub. Questa pagina descrive brevemente le funzioni principali dell’API per accedere e manipolare i dati contestuali. Per informazioni dettagliate ed esempi di codice, segui i collegamenti alla documentazione di riferimento delle API.

Aggiunta di ContextHub a un componente pagina adding-contexthub-to-a-page-component

Per abilitare le funzionalità di ContextHub e collegare le librerie JavaScript di ContextHub, includi il componente contexthub nella sezione head della pagina. Il codice HTL del componente page deve essere simile al seguente esempio:

<sly data-sly-resource="${'contexthub' @ resourceType='granite/contexthub/components/contexthub'}"/>

È inoltre necessario configurare se la barra degli strumenti di ContextHub viene visualizzata in modalità Anteprima. Vedi Visualizzazione e nascondere l'interfaccia utente di ContextHub.

Informazioni sugli store ContextHub about-contexthub-stores

Utilizza gli archivi ContextHub per rendere persistenti i dati contestuali. ContextHub fornisce i seguenti tipi di store che costituiscono la base di tutti i tipi di store:

Tutti i tipi di archivio sono estensioni della classe ContextHub.Store.Core. Per informazioni sulla creazione di un tipo di archivio, vedere Creazione di archivi personalizzati. Per informazioni sui tipi di archivio campioni, vedi Candidati archivio ContextHub campione.

Modalità di persistenza persistence-modes

Gli archivi Context Hub utilizzano una delle seguenti modalità di persistenza:

  • Locale: utilizza HTML5 localStorage per salvare i dati in modo permanente. L’archiviazione locale viene mantenuta nel browser per tutte le sessioni.
  • Sessione: utilizza HTML5 sessionStorage per salvare i dati in modo permanente. L’archiviazione della sessione viene mantenuta per tutta la durata della sessione del browser ed è disponibile per tutte le finestre del browser.
  • Cookie: utilizza il supporto nativo dei cookie del browser per l'archiviazione dei dati. I dati dei cookie vengono inviati al e dal server nelle richieste HTTP.
  • Window.name: Utilizza la proprietà window.name per rendere persistenti i dati.
  • Memoria: utilizza un oggetto JavaScript per salvare i dati in modo permanente.

Per impostazione predefinita, Context Hub utilizza la modalità di persistenza locale. Se il browser non supporta o consente HTML5 localStorage, viene utilizzata la persistenza della sessione. Se il browser non supporta o consente HTML5 sessionStorage, viene utilizzata la persistenza Window.name.

Dati store store-data

Internamente, i dati vengono memorizzati in una struttura ad albero, consentendo l'aggiunta di valori come tipi primari o oggetti complessi. Quando si aggiungono oggetti complessi agli archivi, le proprietà dell'oggetto formano rami nella struttura dati. Ad esempio, il seguente oggetto complesso viene aggiunto a un archivio vuoto denominato location:

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

La struttura ad albero dei dati dell’archivio può essere concettualizzata come segue:

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

La struttura ad albero definisce gli elementi dati nell’archivio come coppie chiave/valore. Nell'esempio precedente, la chiave /number corrisponde al valore 321 e la chiave /data/country corrisponde al valore Switzerland.

Manipolazione di oggetti manipulating-objects

ContextHub fornisce la classe ContextHub.Utils.JSON.tree per la manipolazione degli oggetti JavaScript. Utilizzare le funzioni di questa classe per manipolare gli oggetti JavaScript prima di aggiungerli a un archivio o dopo averli ottenuti da un archivio.

Inoltre, la classe ContextHub.Utils.JSON fornisce funzioni per serializzare gli oggetti alle stringhe e deserializzare le stringhe agli oggetti. Utilizzare questa classe per la gestione dei dati JSON per supportare browser che non includono in modo nativo le funzioni JSON.parse e JSON.stringify.

Interazione con gli store ContextHub interacting-with-contexthub-stores

Utilizzare l'oggetto JavaScript ContextHub per ottenere un archivio come oggetto JavaScript. Una volta ottenuto l'oggetto store, è possibile manipolare i dati in esso contenuti. Utilizzare la funzione getAllStores o getStore per ottenere l'archivio.

Accesso ai dati store accessing-store-data

La classe JavaScript ContexHub.Store.Core definisce diverse funzioni per l'interazione con i dati dell'archivio. Le funzioni seguenti memorizzano e recuperano più elementi di dati contenuti negli oggetti:

I singoli elementi di dati sono memorizzati come un insieme di coppie chiave/valore. Per memorizzare e recuperare i valori, specifica la chiave corrispondente:

I candidati all’archivio personalizzato possono definire funzioni aggiuntive che forniscono l’accesso ai dati dell’archivio.

NOTE
ContextHub non è a conoscenza, per impostazione predefinita, dell’accesso attualmente utilizzato sui server di pubblicazione e tali utenti sono considerati da ContextHub come "Anonimi".
Puoi rendere ContextHub consapevole degli utenti connessi caricando l’archivio profili. Vedi il codice di esempio: aem-sample-we-retail su GitHub.

Evento ContextHub contexthub-eventing

ContextHub include un framework di eventi che ti consente di reagire automaticamente per archiviare gli eventi. Ogni oggetto archivio contiene un oggetto ContextHub.Utils.Eventing disponibile come proprietà eventing dell'archivio. Utilizzare la funzione on o once per associare una funzione JavaScript a un evento store.

L’API JavaScript di Context Hub fornisce supporto tra browser diversi per la gestione dei cookie del browser. Lo spazio dei nomi ContextHub.Utils.Cookie definisce diverse funzioni per la creazione, la manipolazione e l'eliminazione dei cookie.

Determinazione dei segmenti ContextHub risolti determining-resolved-contexthub-segments

Il motore di segmenti ContextHub consente di determinare quali dei segmenti registrati vengono risolti nel contesto corrente. Utilizzare la funzione getResolvedSegments della classe ContextHub.SegmentEngine.SegmentManager per recuperare i segmenti risolti. Utilizzare quindi la funzione getName o getPath della classe ContextHub.SegmentEngine.Segment per verificare la presenza di un segmento.

Segmenti ContextHub contexthub-segments

I segmenti ContextHub sono installati sotto il nodo /conf/<site>/settings/wcm/segments.

I seguenti segmenti sono installati con il sito WKND tutorial.

  • estate
  • inverno

Le regole utilizzate per risolvere questi segmenti sono riepilogate come segue:

  • Innanzitutto, viene utilizzato l'archivio geolocation per determinare la latitudine dell'utente.
  • Quindi l'elemento dati del mese dell'archivio surferinfo determina la stagione in cui si trova tale latitudine.
WARNING
I segmenti installati vengono forniti come configurazioni di riferimento per aiutarti a creare la tua configurazione dedicata per il progetto. Non utilizzarle direttamente.

Debug di ContextHub debugging-contexthub

Sono disponibili diverse opzioni per il debug di ContextHub, inclusa la generazione di registri. Per ulteriori informazioni, vedere Configurazione di ContextHub.

Panoramica del framework ContextHub see-an-overview-of-the-contexthub-framework

ContextHub fornisce una pagina di diagnostica in cui è possibile visualizzare una panoramica del framework ContextHub.

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab