طبقة البيانات

حصة علنية DataLayer

طبقة البيانات عبارة عن خريطة تحتوي على معلومات عامة عن التطبيق. وهو يستخدم مجموعة عادية من المفاتيح حتى يتمكن أي طرف من قراءتها يفهم المواصفات. يتم تعديل حالة طبقة البيانات من خلال واجهة برمجة التطبيقات الخاصة بها. على سبيل المثال، قد يبدأ أحد التطبيقات بطبقة 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 في طبقة البيانات، يتم تقييم قواعد العلامات وأي سيتم تنشيط العلامات التي تطابق هذا الحدث. على سبيل المثال، في ما يتعلق بحاوية تحتوي على علامة تكون قاعدة تنشيطها هي "الحدث" يساوي "openscreen"، بعد هذا الإرسال:

 dataLayer.push("event", "openScreen");
فسيتم تنشيط تلك العلامة.

ملخّص الحقول

علنية ثابتة النِّهَائِي كائن OBJECT_NOT_PRESENT تؤدي القيم من هذا النوع المستخدم في إحدى القوائم إلى تباعد القائمة عند دمجها. الأمر كما لو لم يكن هناك أي عنصر في هذا الفهرس.

ملخّص الطريقة العامة

الكائن
get(مفتاح السلسلة)
ثابتة قائمة<Object>
listOf(Object... كائنات)
ثابتة خريطة<Object، Object>
mapOf(كائن... كائنات)
فراغ
push(Map<Object, Object> update)
فراغ
push(Object key, Object value)

الحقول

علنية ثابتة النِّهَائِي كائن OBJECT_NOT_PRESENT

تؤدي القيم من هذا النوع المستخدم في إحدى القوائم إلى تباعد القائمة عند دمجها. الأمر كما لو لم يكن هناك أي عنصر في هذا الفهرس.

الطرق العامة

علنية كائن الحصول على (مفتاح السلسلة)

تعرض الكائن في النموذج المرتبط بالمفتاح المحدد. إذا لم يتم العثور على المفتاح، تم إرجاع null.

يمكن أن يشتمل المفتاح على نقاط مُضمَّنة. مثل: يؤدي مفتاح "a.b.c" إلى إرجاع خريطة بالمفتاح "c" في الخريطة مع المفتاح "b" في خريطة مع المفتاح "a" في النموذج.

علنية ثابتة قائمة<Object> listOf (الكائن... الكائنات)

طريقة الأداة التي تنشئ قائمة.

على سبيل المثال، يؤدي ما يلي إلى إنشاء قائمة تحتوي على "object1" و "object2":

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

علنية ثابتة خريطة<Object، Object> mapOf (الكائن... الكائنات)

طريقة الأداة التي تنشئ خريطة. يجب أن تكون المعلمات أزواج من المفاتيح القيم.

على سبيل المثال، يؤدي ما يلي إلى إنشاء خريطة تربط "key1" بـ "value1". ومن "key2" إلى "value2":

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

الرميات
IllegalArgumentException ما إذا كان هناك عدد فردي من المعاملات

علنية فراغ الإشعارات الفورية (Map<Object, Object> update)

لدمج عنصر update المحدّد في نموذج البيانات الحالي، يستدعي الأمر أي مستمعين بالتحديث (بعد حدوث عملية الدمج).

إذا كنت تريد تمثيل قيمة مفقودة (مثل فهرس فارغ في قائمة)، استخدِم الكائن OBJECT_NOT_PRESENT.

إذا كانت سلسلة محادثات أخرى تنفّذ عملية إرسال، سيتم حظر هذه المكالمة إلى أن منتهٍ.

وعادة ما تكون هذه مكالمة متزامنة. ومع ذلك، إذا كانت سلسلة المحادثات قيد التنفيذ، إرسال دفعة، تكون هناك دفعة أخرى من سلسلة المحادثات نفسها، وتكون هذه الدفعة الثانية غير متزامنة (سيعود الدفع الثاني قبل إجراء التغييرات على طبقة البيانات). هذه الثانية الدفع من نفس سلسلة التعليمات، على سبيل المثال، إذا تم دفع طبقة بيانات استجابة إلى تنشيط علامة.

إذا كانت السمة update تحتوي على المفتاح event، سيتم تقييم القواعد سيتم تنشيط العلامات المطابقة.

المعلمات
تحديث كائن التحديث الذي ستتم معالجته

علنية فراغ الإشعارات الفورية (مفتاح العنصر العنصر القيمة)

تدفع زوج مفتاح/قيمة من البيانات إلى طبقة البيانات. هذه مجرد طريقة ملائمة يتصل بـ push(DataLayer.mapOf(key, value)).