A camada de dados é um mapa com informações genéricas sobre o aplicativo. Ele usa um conjunto padrão de chaves para que possa ser lido por qualquer parte. que entenda a especificação. O estado da camada de dados é atualizado pela API. Por exemplo, um aplicativo pode começar com o seguinte dataLayer:
{
title: "Original screen title"
}
dataLayer.push(DataLayer.mapOf("title", "New screen title"));
{
title: "New screen title"
}
dataLayer.push(DataLayer.mapOf("xyz", 3));
{
"title": "New screen title",
"xyz": 3
}
{
"items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
}
dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
DataLayer.mapOf("a", null)));
{
"items": [null, "item6", "item2", {"a": null, "b": "bValue"}]
}
Os push são síncronos. após o envio, as alterações foram refletidas no modelo.
Quando uma chave event é enviada para a camada de dados, as regras para tags são avaliadas e quaisquer
as tags correspondentes a esse evento serão disparadas.
Por exemplo, considerando um contêiner com uma tag cuja regra de disparo é aquela "evento" é igual a
"openScreen", após o envio:
dataLayer.push("event", "openScreen");
Resumo dos campos
| públicas estática final. Objeto | OBJECT_NOT_PRESENT | Os valores desse tipo usados em uma List fazem com que ela seja esparsa durante a mesclagem. é como se não havia elementos naquele índice. |
Resumo do método público
| Objeto |
get(String key)
|
| estática List<Object> |
listOf(Object... objects)
|
| estática Map<Object, Object> |
mapOf(Object... objects)
|
| void |
push(Map<Object, Object> update)
|
| void |
Campos
públicas estática final. Objeto OBJECT_NOT_PRESENT
Os valores desse tipo usados em uma List fazem com que ela seja esparsa durante a mesclagem. é como se não havia elementos naquele índice.
Métodos públicos
públicas Objeto obter (Chave de string)
Retorna o objeto no modelo associado à chave especificada. Se a chave não for encontrada,
null é retornado.
A chave pode ter pontos incorporados. Por exemplo:
uma chave de "a.b.c" retorna um mapa com a chave "c" em um mapa.
com a chave "b" em um mapa com a chave "a" no modelo.
públicas estática List<Object> listOf (Objeto... objetos)
Método utilitário que cria uma lista.
Por exemplo, o código a seguir cria uma lista contendo "object1" e
"object2":
List<Object> list = DataLayer.listOf("object1", "object2");
públicas estática Map<Object, Object> mapOf (Objeto... objetos)
Método utilitário que cria um mapa. Os parâmetros devem ser pares de chaves e a distribuição dos valores dos dados.
Por exemplo, o código a seguir cria um mapeamento de "key1" para "value1".
e "key2" para "value2":
Map<Object, Object> map = DataLayer.mapOf("key1", "value1", "key2", "value2");
Gera
| IllegalArgumentException | se houver um número ímpar de parâmetros |
públicas anular push (Map<Object, Object> update)
Mescla o objeto update especificado no modelo de dados atual, chamando
qualquer listener com a atualização (após a mesclagem).
Se você quiser representar um valor ausente (como um índice vazio em uma lista),
use o objeto OBJECT_NOT_PRESENT.
Se outra linha de execução estiver executando um envio, essa chamada será bloqueada até que concluído.
Essa normalmente é uma chamada síncrona. No entanto, se, enquanto a linha de execução estiver o push, outro push acontece no mesmo thread e o segundo push é assíncrono O segundo envio será retornado antes que as alterações tenham sido feitas na camada de dados. Este segundo push da mesma linha de execução pode ocorrer, por exemplo, se um push da camada de dados for feito em resposta até o disparo de uma tag.
Se update contiver a chave event, as regras serão avaliadas e
as tags correspondentes serão disparadas.
Parâmetros
| update | o objeto de atualização a ser processado |
públicas anular push (Chave de objeto, Valor de objeto)
Envia um par de chave-valor de dados para a camada de dados. Esse é apenas um método de conveniência
que chama push(DataLayer.mapOf(key, value)).