DataLayer

clase pública DataLayer

La capa de datos es un mapa que contiene información genérica sobre la aplicación. Utiliza un conjunto estándar de claves para que cualquier persona pueda leerlo. que comprenda la especificación. El estado de la capa de datos se actualiza a través de su API. Por ejemplo, una app podría comenzar con el siguiente dataLayer:

   {
     title: "Original screen title"
   }
A medida que cambian el estado o los datos de una app, esta puede actualizar dataLayer con una llamada como la siguiente:
   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
Ahora, la capa de datos contiene lo siguiente:
   {
     title: "New screen title"
   }
Después de otra inserción, sigue estos pasos:
 dataLayer.push(DataLayer.mapOf("xyz", 3));
El objeto dataLayer contiene lo siguiente:
   {
     "title": "New screen title",
     "xyz": 3
   }
En el siguiente ejemplo, se muestra cómo funciona la combinación de arrays y mapas. Si el código original dataLayer contiene lo siguiente:
   {
     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
   }
Después de que se realiza el envío, sigue estos pasos:
 dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
     DataLayer.mapOf("a", null)));
El objeto dataLayer contiene lo siguiente:
   {
     "items": [null, "item6", "item2", {"a": null, "b": "bValue"}]
   }

Los envíos se realizan de forma síncrona; después del envío, los cambios se reflejaron en el modelo.

Cuando se envía una clave event a la capa de datos, se evalúan las reglas para las etiquetas y cualquier Se activarán las etiquetas que coincidan con este evento. Por ejemplo, en un contenedor con una etiqueta cuya regla de activación es ese “evento” equivale a “openScreen” después de este envío:

 dataLayer.push("event", "openScreen");
se activará esa etiqueta.

Resumen de campos

público estático final Objeto OBJECT_NOT_PRESENT Los valores de este tipo que se usan en una lista hacen que la lista quede dispersa durante la fusión; es como si no había elementos en ese índice.

Resumen de métodos públicos

Objeto
get(Cadena clave)
estático Lista<Objeto>
listOf(Objeto... objetos)
estático Map<Object, Object>
mapOf(Objeto... objetos)
void
push(Map<Object, Object> update)
void
push(Clave del objeto, Valor del objeto)

Campos

público estático final Objeto OBJECT_NOT_PRESENT

Los valores de este tipo que se usan en una lista hacen que la lista quede dispersa durante la fusión; es como si no había elementos en ese índice.

Métodos públicos

público Objeto obtener (Clave de cadena)

Devuelve el objeto en el modelo asociado con la clave determinada. Si no se encuentra la clave, Se muestra null.

La clave puede tener puntos incorporados. Por ejemplo: una clave de "a.b.c" muestra un mapa con la clave "c" en un mapa con la clave "b" en un mapa con la clave "a" en el modelo.

público estático Lista<Objeto> listOf (Objeto... objetos)

Es un método de utilidad que crea una lista.

Por ejemplo, lo siguiente crea una lista que contiene "object1" y "object2"

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

público estático Map<Object, Object> mapOf (Objeto... objetos)

Es el método de utilidad que crea un mapa. Los parámetros deben ser pares de claves de salida.

Por ejemplo, lo siguiente crea un mapa que asigna "key1" a "value1" y "key2" a "value2":

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

Arroja
IllegalArgumentException si hay una cantidad impar de parámetros

público anular push (Map<Object, Object> update)

Combina el objeto update dado en el modelo de datos existente y llama cualquier objeto de escucha con la actualización (después de la combinación).

Si quieres representar un valor faltante (como un índice vacío en una lista), usa el objeto OBJECT_NOT_PRESENT.

Si otro subproceso está ejecutando un envío, esta llamada se bloquea hasta que el subproceso finalizado.

Por lo general, esta es una llamada síncrona. Sin embargo, si, mientras el subproceso se está ejecutando, el envío, se realiza otro envío desde el mismo subproceso y, luego, ese segundo envío es asíncrono. (se devolverá el segundo envío antes de que se hayan realizado cambios en la capa de datos). Este segundo puede ocurrir un envío desde el mismo subproceso, por ejemplo, si se realiza un envío de la capa de datos en respuesta se activa una etiqueta.

Si update contiene la event clave, se evaluarán las reglas. se activarán las etiquetas coincidentes.

Parámetros
update el objeto Update para procesar

público anular push (Clave del objeto, Valor del objeto)

Envía un par clave-valor de datos a la capa de datos. Este es solo un método de conveniencia que llame a push(DataLayer.mapOf(key, value)).