DataLayer

classe pública DataLayer

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"
   }
Como o estado ou os dados de um aplicativo podem mudar, o aplicativo pode atualizar a camada de dados com uma chamada como:
   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
Agora, a camada de dados contém:
   {
     title: "New screen title"
   }
Após outro push:
 dataLayer.push(DataLayer.mapOf("xyz", 3));
O dataLayer contém:
   {
     "title": "New screen title",
     "xyz": 3
   }
O exemplo a seguir demonstra como funciona a mesclagem de matrizes e mapas. Se o arquivo original O objeto dataLayer contém:
   {
     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
   }
Após esse envio:
 dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
     DataLayer.mapOf("a", null)));
O dataLayer contém:
   {
     "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");
essa tag será disparada.

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
push(Objeto chave, Objeto valor)

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