dataLayer

lớp công khai DataLayer

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

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

Các thao tác đẩ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à các thẻ khớp với sự kiện này sẽ kích hoạt. Ví dụ: giả sử một vùng chứa có thẻ có quy tắc kích hoạt là "event" bằng "openScreen", sau lần đẩy này:

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

Tóm tắt trường

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

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

Đối tượng
get(Chuỗi khoá)
tĩnh Liệt kê<Object>
listOf(Đối tượng... đối tượng)
tĩnh Ánh xạ<Object, Object>
mapOf(Đối tượng... đối tượng)
void
thông báo đẩy(Map<Object, Object> cập nhật)
void
đẩy(Khoá đối tượng, Giá trị đối tượng)

Trường

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

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

Phương thức công khai

công khai Đối tượng nhận (Khoá chuỗi)

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

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

công khai tĩnh Liệt kê<Object> listOf (Đối tượng... đối tượng)

Phương thức tiện ích tạo danh sách.

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

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

công khai tĩnh Ánh xạ<Object, Object> mapOf (Đối tượng... đối tượng)

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

Ví dụ: đoạn mã sau đây sẽ tạo một bản đồ ánh xạ "key1" đến "value1""key2" thành "value2":

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

Gửi
IllegalArgumentException có số lượng tham số lẻ không

công khai trống đẩy (Bản đồ<Đối tượng, Đối tượng> cập nhật)

Hợp nhất đối tượng update đã cho vào mô hình dữ liệu hiện có, gọi bất kỳ trình nghe nào được 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ị bị thiếu (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 một thao tác đẩy, thì lệnh gọi này sẽ chặn cho đến khi luồng đó được đã hoàn tất.

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

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

Tham số
cập nhật đối tượng cập nhật cần xử lý

công khai trống đẩy (Khoá đối tượng, Giá trị đối tượng)

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