데이터 레이어는 애플리케이션에 대한 일반 정보가 포함된 지도입니다. 표준 키 집합을 사용하므로 사양을 이해하는 모든 사람이 읽을 수 있습니다. 데이터 영역 상태는 API를 통해 업데이트됩니다. 예를 들어 앱은 다음 dataLayer로 시작할 수 있습니다.
{ 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에서 이 유형의 값을 사용하면 병합 시 List가 희소해집니다. 이는 색인에 요소가 없는 것과 같습니다. |
공개 메서드 요약
객체 |
get(문자열 키)
|
정적 List<Object> |
listOf(객체... 객체)
|
static Map<Object, Object> |
mapOf(객체... 객체)
|
void |
push(Map<Object, Object> update)
|
void |
필드
공개 정적 최종 객체 OBJECT_NOT_PRESENT
List에서 이 유형의 값을 사용하면 병합 시 List가 희소해집니다. 이는 색인에 요소가 없는 것과 같습니다.
공개 메서드
공개 객체 get (문자열 키)
지정된 키와 연결된 모델의 객체를 반환합니다. 키를 찾을 수 없으면 null
가 반환됩니다.
키에 마침표를 삽입할 수 있습니다. 예를 들어 "a.b.c"
키는 모델에 "a"
키가 있는 맵에서 "b"
키가 있는 맵에서 키가 "c"
인 맵을 반환합니다.
공개 정적 List<Object> listOf (객체... 객체)
목록을 만드는 유틸리티 메서드입니다.
예를 들어 다음은 "object1"
및 "object2"
가 포함된 목록을 만듭니다.
List<Object> list = DataLayer.listOf("object1", "object2");
public static Map<Object, Object> mapOf (Object... objects)
지도를 만드는 유틸리티 메서드입니다. 매개변수는 키 값의 쌍이어야 합니다.
예를 들어 다음은 "key1"
를 "value1"
에 매핑하고 "key2"
를 "value2"
에 매핑하는 맵을 만듭니다.
Map<Object, Object> map = DataLayer.mapOf("key1", "value1", "key2", "value2");
생성 값
IllegalArgumentException | 매개변수의 수가 홀수일 때 |
public void push (Map<Object, Object> update)
지정된 update
객체를 기존 데이터 모델에 병합하여 병합이 발생한 후 업데이트와 함께 리스너를 호출합니다.
누락된 값 (예: 목록의 빈 색인)을 나타내려면 OBJECT_NOT_PRESENT
객체를 사용합니다.
다른 스레드가 푸시를 실행 중인 경우 이 호출은 해당 스레드가 완료될 때까지 차단됩니다.
이는 일반적으로 동기 호출입니다. 그러나 스레드가 푸시를 실행하는 동안 같은 스레드에서 또 다른 푸시가 발생하면 두 번째 푸시는 비동기식입니다(두 번째 푸시는 데이터 영역에 변경사항이 적용되기 전에 반환됨). 예를 들어 태그 실행에 대한 응답으로 데이터 영역 푸시가 이루어진 경우 동일한 스레드에서 발생하는 두 번째 푸시가 발생할 수 있습니다.
update
에 event
키가 포함되어 있으면 규칙이 평가되고 일치하는 태그가 실행됩니다.
매개변수
update | 처리할 업데이트 객체 |
공개 void push (객체 키, 객체 값)
데이터의 키-값 쌍을 데이터 영역으로 푸시합니다. 이는 push(DataLayer.mapOf(key, value))
를 호출하는 편의 메서드일 뿐입니다.