Livello dati

classe pubblica DataLayer

Il livello dati è una mappa che contiene informazioni generiche sull'applicazione. Utilizza un set di chiavi standard in modo che possa essere letto da qualsiasi parte che comprende 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 del tipo:
   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
Ora il livello dati contiene:
   {
     title: "New screen title"
   }
Dopo un altro push:
 dataLayer.push(DataLayer.mapOf("xyz", 3));
Il dataLayer contiene:
   {
     "title": "New screen title",
     "xyz": 3
   }
L'esempio seguente mostra come funziona l'unione di array e mappe. Se l'originale Il dataLayer contiene:
   {
     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
   }
Dopo il 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 avvengono in modo sincrono; dopo il push, le modifiche si riflettono nel modello.

Quando una chiave event viene inviata al livello dati, vengono valutate le regole per i tag ed eventuali verranno attivati i tag corrispondenti a questo evento. Ad esempio, un container con un tag la cui regola di attivazione è "evento" è pari a "openScreen", dopo questo push:

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

Riepilogo dei campi

pubblica statico finale Oggetto OBJECT_NOT_PRESENT I valori di questo tipo utilizzati in un elenco fanno sì che l'elenco sia sparso durante l'unione; è come se non c'erano elementi in quell'indice.

Riepilogo del metodo pubblico

Oggetto
get(Chiave della stringa)
statico Elenco<oggetto>
listOf(Oggetto... oggetti)
statico Mappa<Oggetto, Oggetto>
mapOf(Oggetto... oggetti)
null
push(Map<Object, Object> update)
null
push(Chiave dell'oggetto, Valore dell'oggetto)

Campi

pubblica statico finale Oggetto . OBJECT_NOT_PRESENT

I valori di questo tipo utilizzati in un elenco fanno sì che l'elenco sia sparso durante l'unione; è come se non c'erano elementi in quell'indice.

Metodi pubblici

pubblica Oggetto . get (Chiave stringa)

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

La chiave può avere 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.

pubblica statico Elenco<oggetto> . listOf (oggetto... oggetti)

Metodo di utilità che crea un elenco.

Ad esempio, di seguito viene creato un elenco contenente "object1" e "object2":

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

pubblica statico Mappa<Oggetto, Oggetto> . mapOf (oggetto... oggetti)

Metodo di utilità che crea una mappa. I parametri devono essere coppie di chiavi e i relativi valori.

Ad esempio, di seguito viene creata una mappa che mappa "key1" a "value1" e da "key2" a "value2":

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

Lanci
IllegalArgumentException se è presente un numero dispari di parametri

pubblica null . push (Mappa<oggetto, oggetto> aggiornamento)

Unisce l'oggetto update specificato nel modello dei dati esistente, richiamando tutti i 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 esegue un push, questa chiamata si blocca finché il thread non viene completato.

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

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

Parametri
update l'oggetto update per elaborare

pubblica null . push (Chiave dell'oggetto, Valore dell'oggetto)

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