Veri katmanı, uygulama hakkında genel bilgileri içeren bir haritadır. Bu özellik, standart bir anahtar grubu kullandığından özellikleri anlayan tüm taraflarca okunabilir. Veri katmanı durumu, API'si aracılığıyla güncellenir. Örneğin, bir uygulama aşağıdaki dataLayer ile başlayabilir:
{ title: "Original screen title" }Bir uygulamanın durumu/verileri değişebildiğinden uygulama aşağıdaki gibi bir çağrıyla dataLayer'ı güncelleyebilir:
dataLayer.push(DataLayer.mapOf("title", "New screen title"));Artık veri katmanı şunları içerir:
{ title: "New screen title" }Başka bir aktarma sonrasında:
dataLayer.push(DataLayer.mapOf("xyz", 3));dataLayer şunları içerir:
{ "title": "New screen title", "xyz": 3 }Aşağıdaki örnekte dizi ve harita birleştirmenin nasıl çalıştığı gösterilmektedir. Orijinal dataLayer şunları içeriyorsa:
{ "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}] }Bu aktarma yapıldıktan sonra:
dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT, DataLayer.mapOf("a", null)));dataLayer şunları içerir:
{ "items": [null, "item6", "item2", {"a": null, "b": "bValue"}] }
İtme işlemleri eşzamanlı olarak gerçekleşir. Aktarma işleminden sonra değişiklikler modele yansıtılır.
Bir event
anahtarı veri katmanına aktarıldığında, etiketler için kurallar değerlendirilir ve bu etkinlikle eşleşen tüm etiketler tetiklenir.
Örneğin, tetikleme kuralına "event" değeri "openScreen"a eşit olan bir etikete sahip kapsayıcı verildiğinde:
dataLayer.push("event", "openScreen");Bu etiket etkinleşir.
Alan Özeti
herkese açık statik nihai nesne | OBJECT_NOT_PRESENT | Bir Listede kullanılan bu tür değerler, birleştirme sırasında Listenin az olmasına neden olur. Bu durum, söz konusu dizinde hiç öğe yokmuş gibi meydana gelir. |
Herkese Açık Yöntem Özeti
Nesne |
get(Dize anahtarı)
|
statik Liste<Nesne> |
listOf(Nesne... nesneler)
|
statik Harita<Nesne, Nesne> |
mapOf(Nesne... nesneler)
|
void |
push(Map<Object, Object> güncelleme)
|
void |
Alanlar
herkese açık statik nihai Nesne OBJECT_NOT_PRESENT
Bir Listede kullanılan bu tür değerler, birleştirme sırasında Listenin az olmasına neden olur. Bu durum, söz konusu dizinde hiç öğe yokmuş gibi meydana gelir.
Herkese Açık Yöntemler
herkese açık Nesne get (Dize anahtarı)
Belirtilen anahtarla ilişkili modeldeki nesneyi döndürür. Anahtar bulunmazsa null
döndürülür.
Anahtarda yerleşik noktalar olabilir. Örneğin:
"a.b.c"
anahtarı, modelde "a"
anahtarına sahip bir harita içinde "b"
anahtarına sahip bir haritada "c"
anahtarına sahip bir eşleme döndürür.
herkese açık statik List<Object> listOf (Nesne... nesneler)
Liste oluşturan yardımcı program yöntemi.
Örneğin, aşağıdaki işlem "object1"
ve "object2"
içeren bir liste oluşturur:
List<Object> list = DataLayer.listOf("object1", "object2");
herkese açık statik Harita<Nesne, Nesne> mapOf (Nesne... objects)
Harita oluşturan yardımcı yöntem. Parametreler, anahtar/değer çiftleri olmalıdır.
Örneğin, aşağıda "key1"
ile "value1"
ve "key2"
ile "value2"
arasında bir eşleme oluşturulmuştur:
Map<Object, Object> map = DataLayer.mapOf("key1", "value1", "key2", "value2");
Dekoratif yastıklar
IllegalArgumentException | parametre sayısı tek sayıdaysa |
herkese açık void push (Map<Object, Object> güncelleme)
Belirtilen update
nesnesini mevcut veri modeliyle birleştirir ve güncellemeyle birlikte (birleştirme tamamlandıktan sonra) tüm işleyicileri çağırır.
Eksik bir değeri (Listedeki boş bir dizin gibi) temsil etmek istiyorsanız OBJECT_NOT_PRESENT
nesnesini kullanın.
Başka bir iş parçacığı aktarma yürütüyorsa bu çağrı, söz konusu iş parçacığı bitene kadar işlemi engeller.
Bu genellikle eşzamanlı bir çağrıdır. Bununla birlikte, iş parçacığı aktarma işlemini yürütürken aynı iş parçacığından başka bir aktarma gerçekleşirse bu ikinci aktarma eşzamansız olur (ikinci aktarma, veri katmanında değişiklik yapılmadan önce geri döner). Örneğin, bir etiket etkinleşmesine yanıt olarak veri katmanı aktarımı yapılırsa aynı iş parçacığından bu ikinci aktarma gerçekleşebilir.
update
, event
anahtarını içeriyorsa kurallar değerlendirilir ve eşleşen etiketler tetiklenir.
Parametreler
update | işlenecek güncelleme nesnesi |
herkese açık void push (Nesne anahtarı, Nesne değeri)
Bir anahtar/değer çiftini veri katmanına aktarır. Bu yalnızca push(DataLayer.mapOf(key, value))
yöntemini çağıran bir kolaylık yöntemidir.