Livello dati

classe pubblica DataLayer

Il livello dati è una mappa contenente informazioni generiche sull'applicazione. Utilizza un set standard di chiavi, in modo che possa essere letto da qualsiasi parte che comprenda la specifica. Lo stato del livello dati viene aggiornato tramite la relativa API. Ad esempio, un'app potrebbe iniziare con il seguente dataLayer:

   {
     title: "Original screen title"
   }
Poiché lo stato/i dati di un'app possono cambiare, l'app può aggiornare il dataLayer con una chiamata come questo:
   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
Ora il livello dati contiene:
   {
     title: "New screen title"
   }
Dopo l'esecuzione di un altro push:
 dataLayer.push(DataLayer.mapOf("xyz", 3));
Il dataLayer contiene:
   {
     "title": "New screen title",
     "xyz": 3
   }
Il seguente esempio mostra come funziona l'unione di array e mappe. Se il dataLayer originale contiene:
   {
     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
   }
Dopo questo push:
 dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
     DataLayer.mapOf("a", null)));
Il dataLayer contiene:
   {
     "items": [null, "item6", "item2", {"a": null, "b": "bValue"}]
   }

I push vengono eseguiti in modo sincrono; dopo il push, le modifiche si sono applicate al modello.

Quando viene inviata una chiave event al livello dati, le regole per i tag vengono valutate e tutti i tag corrispondenti a questo evento vengono attivati. Ad esempio, nel caso di un contenitore con un tag la cui regola di attivazione è che "event" è uguale a "openScreen", dopo questo push:

 dataLayer.push("event", "openScreen");
il tag si attiverà.

Riepilogo campo

pubblico statico finale Oggetto OBJECT_NOT_PRESENT Valori di questo tipo utilizzati in un elenco fanno sì che l'elenco sia sparso durante l'unione; è come se non ci fosse alcun elemento in quell'indice.

Riepilogo del metodo pubblico

Oggetto
get(stringa chiave)
statico List<Object>
listOf(Oggetto... oggetti)
statico Map<Object, Object>
mapOf(Oggetto... oggetti)
void
push(Map<Object, Object> update)
void
push(chiave oggetto, Valore oggetto)

Campi

pubblico statico finale Oggetto OBJECT_NOT_PRESENT

Valori di questo tipo utilizzati in un elenco fanno sì che l'elenco sia sparso durante l'unione; è come se non ci fosse alcun elemento in quell'indice.

Metodi pubblici

pubblica Oggetto get (Chiave stringa)

Restituisce l'oggetto del modello associato alla chiave specificata. Se la chiave non viene trovata, viene restituito null.

La chiave può contenere punti incorporati. Ad esempio: una chiave di "a.b.c" restituisce una mappa con chiave "c" in una mappa con chiave "b" in una mappa con chiave "a" nel modello.

pubblico statico List<Object> listOf (Oggetto... oggetti)

Metodo di utilità che crea un elenco.

Ad esempio, quanto segue crea un elenco contenente "object1" e "object2":

   List<Object> list = DataLayer.listOf("object1", "object2");
 

pubblico statico Map<Object, Object> mapOf (Object... objects)

Metodo di utilità che crea una mappa. I parametri devono essere coppie di valori chiave.

Ad esempio, quanto segue crea una mappatura della mappa da "key1" a "value1" e da "key2" a "value2":

   Map<Object, Object> map = DataLayer.mapOf("key1", "value1", "key2", "value2");
 

Tiri
IllegalArgumentException se ci sono un numero dispari di parametri

Public void push (Map<Object, Object> update)

Unisce l'oggetto update specificato al modello dei dati esistente, chiamando eventuali listener con l'aggiornamento (dopo l'unione).

Se vuoi rappresentare un valore mancante (come un indice vuoto in un elenco), utilizza l'oggetto OBJECT_NOT_PRESENT.

Se un altro thread sta eseguendo un push, questa chiamata si blocca fino al completamento del thread.

Di solito si tratta di una chiamata sincrona. Tuttavia, se, mentre il thread esegue il push, viene eseguito un altro push dallo stesso thread, il secondo push è asincrono (il secondo push restituirà prima che siano state apportate modifiche al livello dati). Questo secondo push dallo stesso thread può verificarsi, ad esempio, se viene eseguito un push del livello dati in risposta all'attivazione di un tag.

Se update contiene la chiave event, verranno valutate le regole e verranno attivati i tag corrispondenti.

Parametri
update l'oggetto Update da elaborare

Public void push (Chiave dell'oggetto, Valore valore dell'oggetto)

Invia una coppia chiave/valore di dati al livello dati. Questo è solo un metodo di convenienza che chiama push(DataLayer.mapOf(key, value)).