DataLayer

公共类 DataLayer

数据层是一个包含应用一般信息的地图。 它使用一组标准密钥,因此任何一方都可以读取它 这个模型数据层状态通过其 API 进行更新。 例如,应用开头可能如下所示:

   {
     title: "Original screen title"
   }
由于应用的状态/数据可能会发生变化,因此应用可以通过如下调用更新 dataLayer:
   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
现在,数据层包含:
   {
     title: "New screen title"
   }
发生另一次推送后:
 dataLayer.push(DataLayer.mapOf("xyz", 3));
该 dataLayer 包含以下内容:
   {
     "title": "New screen title",
     "xyz": 3
   }
以下示例演示了数组和地图合并的工作方式。如果原始 dataLayer 包含:
   {
     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
   }
推送完成后:
 dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
     DataLayer.mapOf("a", null)));
该 dataLayer 包含以下内容:
   {
     "items": [null, "item6", "item2", {"a": null, "b": "bValue"}]
   }

推送同步进行;推送后,所做更改已反映在模型中。

event 键被推送到数据层时,系统会评估标记的规则, 系统将触发与此事件匹配的代码。 例如,假设某个容器的触发规则是“event”等于 “openScreen”在推送后运行:

 dataLayer.push("event", "openScreen");
该代码就会触发

字段摘要

公开 静态 最后一站 对象 OBJECT_NOT_PRESENT List 中使用的此类型值会导致列表在合并时变得稀疏;就好像 该索引下没有任何元素。

公共方法摘要

对象
get(String )
静态 列表<对象>
listOf(Object... objects)
静态 Map<Object, Object>
mapOf(Object... objects)
无效
push(Map<Object, Object> 更新)
无效
push(对象键, 对象值)

字段

<ph type="x-smartling-placeholder"></ph> 公开 静态 最后一站 对象 OBJECT_NOT_PRESENT

List 中使用的此类型值会导致列表在合并时变得稀疏;就好像 该索引下没有任何元素。

公共方法

<ph type="x-smartling-placeholder"></ph> 公开 对象 获取 (字符串)

返回与指定键关联的模型中的对象。如果未找到该键 null

键可以包含嵌入的句点。例如: 键为 "a.b.c",则返回映射中键为 "c" 的映射 在映射中使用键 "b" 并在模型中使用键 "a"

<ph type="x-smartling-placeholder"></ph> 公开 静态 列表<对象> listOf (对象... 对象)

用于创建列表的实用工具方法。

例如,以下命令会创建一个包含 "object1""object2"

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

<ph type="x-smartling-placeholder"></ph> 公开 静态 Map<Object, Object> mapOf (对象... 对象)

用于创建地图的实用程序方法。参数应为键对 值。

例如,以下代码会创建一个将 "key1" 映射到 "value1" 的映射。 将 "key2" 更改为 "value2"

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

抛出
IllegalArgumentException 假如参数个数为奇数,

<ph type="x-smartling-placeholder"></ph> 公开 无效 推送 (Map<Object, Object> 更新)

将指定的 update 对象合并到现有数据模型中,调用 更新的任何监听器(发生合并后)。

如果要表示缺失值(例如列表中的空索引), 使用 OBJECT_NOT_PRESENT 对象。

如果另一个线程正在执行推送,此调用将阻塞,直到该线程 已完成。

这通常是同步调用。但是,如果线程执行 同一个线程会发生另一次推送,那么第二次推送是异步的 (第二次推送将在对数据层进行更改之前返回)。本秒 可能会发生来自同一线程的推送。例如,如果数据层推送是针对响应 代码触发

如果 update 包含键 event,则将对规则求值, 匹配代码就会触发

参数
update 要处理的更新对象

<ph type="x-smartling-placeholder"></ph> 公开 无效 推送 对象键对象

将数据键值对推送到数据层。这只是一种便捷的方法 调用 push(DataLayer.mapOf(key, value))