dataLayer

lớp công khai DataLayer

Lớp dữ liệu là bản đồ chứa thông tin chung về ứng dụng. Hàm này sử dụng một bộ khoá tiêu chuẩn để bất kỳ bên nào hiểu được quy cách cũng có thể đọc được. Trạng thái lớp dữ liệu được cập nhật thông qua API. Ví dụ: ứng dụng có thể bắt đầu bằng dataLayer sau:

   {
     title: "Original screen title"
   }
Khi trạng thái/dữ liệu của một ứng dụng có thể thay đổi nên ứng dụng có thể cập nhật dataLayer bằng một lệnh gọi như:
   dataLayer.push(DataLayer.mapOf("title", "New screen title"));
Giờ đây, lớp dữ liệu chứa:
   {
     title: "New screen title"
   }
Sau khi một lượt đẩy khác diễn ra:
 dataLayer.push(DataLayer.mapOf("xyz", 3));
Lớp dữ liệu chứa:
   {
     "title": "New screen title",
     "xyz": 3
   }
Ví dụ sau minh hoạ cách hoạt động của việc hợp nhất mảng và bản đồ. Nếu dataLayer gốc có chứa:
   {
     "items": ["item1", null, "item2", {"a": "aValue", "b": "bValue"}]
   }
Sau khi đẩy dữ liệu này ra:
 dataLayer.push("items", DataLayer.listOf(null, "item6", DataLayer.OBJECT_NOT_PRESENT,
     DataLayer.mapOf("a", null)));
dataLayer chứa:
   {
     "items": [null, "item6", "item2", {"a": null, "b": "bValue"}]
   }

Quá trình đẩy diễn ra một cách đồng bộ; sau khi đẩy, các thay đổi đã được phản ánh trong mô hình.

Khi khoá event được đẩy đến lớp dữ liệu, các quy tắc cho thẻ sẽ được đánh giá và mọi thẻ khớp với sự kiện này sẽ kích hoạt. Ví dụ: với một vùng chứa có thẻ có quy tắc kích hoạt là "event" bằng "openScreen", sau khi đẩy:

 dataLayer.push("event", "openScreen");
thẻ đó sẽ kích hoạt.

Tóm tắt về trường

Đối tượng công khai tĩnh cuối cùng OBJECT_NOT_PRESENT Các giá trị thuộc loại này được dùng trong Danh sách khiến Danh sách trở nên thưa thớt khi hợp nhất; như thể không có phần tử nào ở chỉ mục đó.

Tóm tắt phương thức công khai

Đối tượng
get(Khoá chuỗi)
Tĩnh Danh sách<Object>
listOf(Đối tượng... đối tượng)
tĩnh Bản đồ<Đối tượng, Đối tượng>
mapOf(Đối tượng... đối tượng)
void
push(Map<Object, Object> cập nhật)
void
push(Khoá đối tượng, Giá trị giá trị đối tượng)

Các trường

công khai tĩnh cuối cùng Đối tượng OBJECT_NOT_PRESENT

Các giá trị thuộc loại này được dùng trong Danh sách khiến Danh sách trở nên thưa thớt khi hợp nhất; như thể không có phần tử nào ở chỉ mục đó.

Phương thức công khai

công khai Đối tượng get (Chuỗi khoá)

Trả về đối tượng trong mô hình được liên kết với khoá đã cho. Nếu không tìm thấy khoá, null sẽ được trả về.

Khoá có thể có các dấu chấm được nhúng. Ví dụ: khoá của "a.b.c" sẽ trả về một tệp ánh xạ có khoá "c" trong bản đồ có khoá "b" trong bản đồ có khoá "a" trong mô hình.

công khai tĩnh Danh sách<Object> listOf (Đối tượng... đối tượng)

Phương thức Utility để tạo danh sách.

Ví dụ: nội dung sau đây sẽ tạo một danh sách chứa "object1""object2":

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

công khai tĩnh Bản đồ<Object, Object> mapOf (Đối tượng... đối tượng)

Phương thức tiện ích tạo bản đồ. Thông số phải là các cặp khoá-giá trị.

Ví dụ: nội dung sau đây sẽ tạo bản đồ ánh xạ "key1" với "value1""key2" đến "value2":

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

Gửi
IllegalArgumentException nếu có số lượng tham số lẻ

công khai void push (Map<Object, Object> update)

Hợp nhất đối tượng update đã cho vào mô hình dữ liệu hiện có, gọi mọi trình nghe cùng với nội dung cập nhật (sau khi quá trình hợp nhất xảy ra).

Nếu bạn muốn biểu thị một giá trị còn thiếu (chẳng hạn như một chỉ mục trống trong Danh sách), hãy sử dụng đối tượng OBJECT_NOT_PRESENT.

Nếu một luồng khác đang thực thi lệnh đẩy, thì lệnh gọi này sẽ chặn cho đến khi luồng đó kết thúc.

Đây thường là lệnh gọi đồng bộ. Tuy nhiên, nếu trong khi luồng đang thực thi lệnh đẩy, một lượt đẩy khác diễn ra từ cùng một luồng, thì lệnh đẩy thứ hai đó không đồng bộ (lượt đẩy thứ hai sẽ trả về trước khi có thay đổi đối với lớp dữ liệu). Việc đẩy thứ hai này từ cùng một luồng có thể xảy ra, chẳng hạn như nếu thao tác đẩy lớp dữ liệu được thực hiện để phản hồi một thẻ kích hoạt.

Nếu update chứa khoá event, thì các quy tắc sẽ được đánh giá và các thẻ phù hợp sẽ kích hoạt.

Các tham số
cập nhật đối tượng cập nhật để xử lý

công khai khoảng trống push (Khoá đối tượng, Giá trị giá trị đối tượng)

Đẩy một cặp dữ liệu khoá/giá trị vào lớp dữ liệu. Đây chỉ là một phương thức tiện lợi để gọi push(DataLayer.mapOf(key, value)).