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 |
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))
.