DataLayer

공개 클래스 DataLayer

데이터 레이어는 애플리케이션에 대한 일반 정보가 포함된 지도입니다. 표준 키 집합을 사용하므로 사양을 이해하는 모든 사람이 읽을 수 있습니다. 데이터 영역 상태는 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
push(객체 , 객체 )

필드

공개 정적 최종 객체 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 객체를 사용합니다.

다른 스레드가 푸시를 실행 중인 경우 이 호출은 해당 스레드가 완료될 때까지 차단됩니다.

이는 일반적으로 동기 호출입니다. 그러나 스레드가 푸시를 실행하는 동안 같은 스레드에서 또 다른 푸시가 발생하면 두 번째 푸시는 비동기식입니다(두 번째 푸시는 데이터 영역에 변경사항이 적용되기 전에 반환됨). 예를 들어 태그 실행에 대한 응답으로 데이터 영역 푸시가 이루어진 경우 동일한 스레드에서 발생하는 두 번째 푸시가 발생할 수 있습니다.

updateevent 키가 포함되어 있으면 규칙이 평가되고 일치하는 태그가 실행됩니다.

매개변수
update 처리할 업데이트 객체

공개 void push (객체 , 객체 )

데이터의 키-값 쌍을 데이터 영역으로 푸시합니다. 이는 push(DataLayer.mapOf(key, value))를 호출하는 편의 메서드일 뿐입니다.