لایه داده یک نقشه است که اطلاعات عمومی در مورد برنامه را در خود دارد. از مجموعه ای استاندارد از کلیدها استفاده می کند تا برای هر طرفی که مشخصات را درک کند می تواند آن را بخواند. وضعیت لایه داده از طریق 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
به لایه داده فشار داده میشود، قوانین برچسبها ارزیابی میشوند و هر تگ مطابق با این رویداد فعال میشود. به عنوان مثال، با توجه به ظرفی با برچسب که قانون شلیک آن این است که "رویداد" برابر با "openScreen" است، پس از این فشار:
dataLayer.push("event", "openScreen");آن برچسب فعال می شود.
خلاصه فیلد
عمومی استاتیک شی نهایی | OBJECT_NOT_PRESENT | مقادیری از این نوع که در لیست استفاده می شود باعث می شود که لیست در هنگام ادغام پراکنده شود. انگار هیچ عنصری در آن شاخص وجود ندارد. |
خلاصه روش عمومی
هدف - شی | دریافت ( کلید رشته ) |
Static List <Object> | listOf ( شی ... اشیاء ) |
نقشه ایستا<Object, Object> | mapOf ( شیء... اشیاء ) |
خالی | فشار ( به روز رسانی Map<Object, Object> ) |
خالی |
زمینه های
شی نهایی ثابت عمومی OBJECT_NOT_PRESENT
مقادیری از این نوع که در لیست استفاده می شود باعث می شود که لیست در هنگام ادغام پراکنده شود. انگار هیچ عنصری در آن شاخص وجود ندارد.
روش های عمومی
دریافت شی عمومی ( کلید رشته )
شیء موجود در مدل مرتبط با کلید داده شده را برمی گرداند. اگر کلید پیدا نشد، null
برگردانده می شود.
کلید می تواند دوره های جاسازی شده داشته باشد. به عنوان مثال: یک کلید "abc"
نقشه ای را با کلید "c"
در نقشه با کلید "b"
در نقشه با کلید "a"
در مدل برمی گرداند.
Public Static List<Object> listOf ( Object... Objects )
روش ابزاری که یک لیست ایجاد می کند.
به عنوان مثال، موارد زیر یک لیست حاوی "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
دادهشده را در مدل داده موجود ادغام میکند و هر شنوندهای را با بهروزرسانی فراخوانی میکند (پس از ادغام).
اگر می خواهید یک مقدار گم شده را نشان دهید (مانند یک فهرست خالی در یک لیست)، از شی OBJECT_NOT_PRESENT
استفاده کنید.
اگر نخ دیگری در حال انجام فشار باشد، این فراخوانی مسدود می شود تا زمانی که آن رشته به پایان برسد.
این معمولا یک تماس همزمان است. با این حال، اگر در حالی که thread در حال اجرای فشار است، فشار دیگری از همان رشته اتفاق می افتد، آن فشار دوم ناهمزمان است (فشار دوم قبل از ایجاد تغییرات در لایه داده برمی گردد). این فشار دوم از همان رشته می تواند رخ دهد، برای مثال، اگر یک فشار لایه داده در پاسخ به شلیک برچسب انجام شود.
اگر update
حاوی event
کلیدی باشد، قوانین ارزیابی میشوند و برچسبهای منطبق فعال میشوند.
مولفه های
به روز رسانی | شی به روز رسانی برای پردازش |
فشار خالی عمومی ( کلید شی ، مقدار شی )
یک جفت داده کلید/مقدار را به لایه داده فشار می دهد. این فقط یک روش راحت است که push(DataLayer.mapOf(key, value))
را فراخوانی می کند.