Datenschicht

öffentliche Klasse DataLayer

Die Datenschicht ist eine Karte mit allgemeinen Informationen zur Anwendung. Es verwendet einen Standardsatz von Schlüsseln, damit er von jeder Partei gelesen werden kann der die Spezifikation versteht. Der Status der Datenschicht wird über die entsprechende API aktualisiert. Eine App könnte beispielsweise mit der folgenden dataLayer beginnen:

   {
     title: "Original screen title"
   }
Da sich der Status bzw. die Daten einer App ändern können, kann das dataLayer-Objekt folgendermaßen aktualisiert werden:
   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
Die Datenschicht enthält jetzt Folgendes:
   {
     title: "New screen title"
   }
Nach einem weiteren Push:
 dataLayer.push(DataLayer.mapOf("xyz", 3));
dataLayer enthält Folgendes:
   {
     "title": "New screen title",
     "xyz": 3
   }
Das folgende Beispiel zeigt, wie Arrays und Karten zusammengeführt werden. Wenn die ursprüngliche dataLayer enthält:
   {
     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
   }
Nach der Übertragung:
 dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
     DataLayer.mapOf("a", null)));
dataLayer enthält Folgendes:
   {
     "items": [null, "item6", "item2", {"a": null, "b": "bValue"}]
   }

Push-Vorgänge erfolgen synchron. wurden Änderungen im Modell widergespiegelt.

Wenn ein event-Schlüssel an die Datenschicht gesendet wird, werden die Tag-Regeln ausgewertet und Tags, die mit diesem Ereignis übereinstimmen, werden ausgelöst. Beispiel: Bei einem Container mit einem Tag, dessen Auslösungsregel „Ereignis“ lautet ist gleich „openScreen“, nach dieser Push-Übertragung:

 dataLayer.push("event", "openScreen");
wird dieses Tag ausgelöst.

Feldzusammenfassung

öffentlich Statisch letzte Objekt OBJECT_NOT_PRESENT Werte dieses Typs, die in einer Liste verwendet werden, führen bei der Zusammenführung zu einer dünnbesetzten Liste. ist es, als ob gab es kein Element an diesem Index.

Public Method Summary

Object
get(Stringschlüssel)
Statisch List<Object>
listOf(Objekt... Objekte)
Statisch Map<Object, Object>
mapOf(Objekt... Objekte)
voidm
push(Map<Objekt, Objekt> update)
voidm
push(Objekt-Schlüssel, Objekt-Wert)

Felder

<ph type="x-smartling-placeholder"></ph> öffentlich statisch letzte Objekt OBJECT_NOT_PRESENT

Werte dieses Typs, die in einer Liste verwendet werden, führen bei der Zusammenführung zu einer dünnbesetzten Liste. ist es, als ob gab es kein Element an diesem Index.

Public Methods

<ph type="x-smartling-placeholder"></ph> öffentlich Objekt get (Zeichenfolgen-Schlüssel)

Gibt das Objekt im Modell zurück, das dem angegebenen Schlüssel zugeordnet ist. Wird der Schlüssel nicht gefunden, null wird zurückgegeben.

Der Schlüssel kann eingebettete Punkte enthalten. Hier einige Beispiele: Der Schlüssel "a.b.c" gibt eine Map mit dem Schlüssel "c" in einer Map zurück. mit dem Schlüssel "b" in einer Map mit dem Schlüssel "a" im Modell.

<ph type="x-smartling-placeholder"></ph> öffentlich statisch List<Object> listOf (Objekt... Objekte)

Dienstprogrammmethode zum Erstellen einer Liste.

Mit dem folgenden Befehl wird beispielsweise eine Liste erstellt, die "object1" und "object2":

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

<ph type="x-smartling-placeholder"></ph> öffentlich Statisch Map<Object, Object> mapOf (Objekt... Objekte)

Dienstprogrammmethode zum Erstellen einer Karte. Die Parameter sollten Schlüsselpaare sein Werte.

Mit dem folgenden Code wird beispielsweise eine Zuordnung von "key1" zu "value1" erstellt und "key2" bis "value2":

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

Löst aus
IllegalArgumentException wenn es eine ungerade Anzahl von Parametern gibt

<ph type="x-smartling-placeholder"></ph> öffentlich voidm Push (Map<Objekt, Objekt> Aktualisierung)

Führt das angegebene update-Objekt mit dem vorhandenen Datenmodell zusammen und ruft dabei alle Listener mit der Aktualisierung (nach der Zusammenführung).

Wenn Sie einen fehlenden Wert darstellen möchten (z. B. einen leeren Index in einer Liste), Verwenden Sie das Objekt OBJECT_NOT_PRESENT.

Wenn ein anderer Thread einen Push ausführt, wird dieser Aufruf blockiert, bis dieser Thread abgeschlossen.

Dies ist normalerweise ein synchroner Aufruf. Wenn jedoch während der Ausführung des Threads erfolgt ein weiterer Push aus demselben Thread und der zweite Push erfolgt asynchron. Der zweite Push wird zurückgegeben, bevor Änderungen an der Datenschicht vorgenommen wurden. Diesen zweiten Push-Übertragungen aus demselben Thread können beispielsweise auftreten, wenn als Antwort eine Datenschicht-Push-Methode ausgelöst wird. zur Tag-Auslösung.

Wenn update den Schlüssel event enthält, werden die Regeln ausgewertet und werden übereinstimmende Tags ausgelöst.

Parameter
update Das zu verarbeitende Aktualisierungsobjekt

<ph type="x-smartling-placeholder"></ph> öffentlich voidm Push (Objekt-Schlüssel, Objekt-Wert)

Überträgt ein Schlüssel/Wert-Paar mit Daten an die Datenschicht. Dies ist nur eine einfache Methode das push(DataLayer.mapOf(key, value)) aufruft.