Tổng quan
Một lớp trợ giúp để mở vùng chứa.
Đây là trình bao bọc xung quanh phương thức openContainerById:callback: (TAGManager) dành cho phương thức gọi hỗ trợ hết thời gian chờ.
Dưới đây là mẫu cho thấy việc chờ tối đa 0,1 giây để vùng chứa được tải trước khi hoàn nguyên về vùng chứa mặc định:
NSTimeInterval timeout = 0.1; TagManager *tagManager = [TagManager instance]; TAGContainerFuture *future = [TAGContainerOpener openContainerWithId:@"GTM-XXXX" tagManager:tagManager openType:kTAGOpenTypePreferNonDefault timeout:&timeout]; TAGContainer *container = [future get];
Nếu phương thức gọi muốn nhận thông báo không đồng bộ khi có vùng chứa nhưng muốn chỉ định thời gian chờ là 0,5 giây theo cách thủ công, thì phương thức gọi nên thêm lớp con TAGContainerOpenerNotifier, thực hiện lệnh gọi đến openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) với thời gian chờ được đặt thành 0,5 và thêm triển khai vào containerAvailable: Container
Hàm thành phần công khai tĩnh | |
(id< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
Chờ tối đa timeout giây để tải một vùng chứa (không mặc định hoặc làm mới tuỳ thuộc vào openType được chỉ định) và trả về một TAGContainerFuture . | |
(vô hiệu) | + openContainerWithId:tagManager:openType:timeout:notifier: |
Chờ tối đa timeout giây để tải một vùng chứa (không mặc định hoặc mới mẻ tuỳ thuộc vào openType được chỉ định) và gọi một trình thông báo khi vùng chứa có sẵn. | |
(Khoảng thời gian khoảng thời gian khoảng thời gian khoảng thời gian giới hạn) | + defaultTimeout |
Trả về thời gian chờ mặc định để yêu cầu vùng chứa. |
Tài liệu về chức năng của thành viên
+ (id<TAGContainerFuture>) openContainerWithId: | (NSString *) | containerId | |
Trình quản lý thẻ: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType) | openType | |
hết thời gian chờ: | (Khoảng thời gian khoảng thời gian khoảng thời gian *) | thời gian chờ | |
Chờ tối đa timeout
giây để tải một vùng chứa (không mặc định hoặc làm mới tuỳ thuộc vào openType
được chỉ định) và trả về một TAGContainerFuture
.
Nếu loại mở là kTAGOpenTypePreferNonDefault
, thì vùng chứa không mặc định (được lưu hoặc truy xuất từ mạng) sẽ được tải và TAGContainerFuture
sẽ được bỏ chặn ngay khi một trong các trường hợp sau xảy ra:
- sẽ tải một vùng chứa đã lưu.
- nếu chưa lưu vùng chứa, thì vùng chứa mạng sẽ được tải hoặc xảy ra lỗi mạng.
- bộ tính giờ sẽ hết hạn.
Nếu xảy ra lỗi mạng hoặc bộ tính giờ hết hạn, get (TAGContainerFuture-p) có thể trả về vùng chứa mặc định.
Nếu loại mở là kTAGOpenTypePreferFresh
, thì vùng chứa mới (được lưu hoặc truy xuất từ mạng) sẽ được tải và TAGContainerFuture sẽ được bỏ chặn ngay khi một trong các trường hợp sau xảy ra:
- sẽ tải một vùng chứa mới đã lưu.
- nếu không có vùng chứa nào được lưu hoặc vùng chứa đã lưu đã cũ, thì vùng chứa mạng sẽ được tải hoặc xảy ra lỗi mạng.
- bộ tính giờ sẽ hết hạn.
Nếu xảy ra lỗi mạng hoặc bộ tính giờ hết hạn, thì get (TAGContainerFuture-p) có thể chứa giá trị mặc định hoặc vùng chứa đã lưu cũ.
Nếu bạn gọi một trong các phương thức openContainer lần thứ hai bằng containerId
nhất định, thì TAGContainerFuture
sẽ được trả về có get (TAGContainerFuture-p) sẽ trả về cùng một vùng chứa như lệnh gọi đầu tiên.
- Các tham số:
-
containerId Mã vùng chứa cần tải. tagManager TAGManager để lấy vùng chứa. tạm ngừng Số giây tối đa phải chờ để tải vùng chứa từ cửa hàng đã lưu. Nếu giá trị bằng 0, hệ thống sẽ sử dụng defaultTimeout. openType Lựa chọn cách mở vùng chứa.
- Trường hợp trả lại hàng:
- Một TAGContainerFuture sẽ đợi tối đa
timeout
và trả về vùng chứa khi có sẵn.
+ (vô hiệu) openContainerWithId: | (NSString *) | containerId | |
Trình quản lý thẻ: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType) | openType | |
hết thời gian chờ: | (Khoảng thời gian khoảng thời gian khoảng thời gian *) | thời gian chờ | |
trình thông báo: | (id< TAGContainerOpenerNotifier >) | trình thông báo | |
Chờ tối đa timeout
giây để tải một vùng chứa (không mặc định hoặc mới mẻ tuỳ thuộc vào openType
được chỉ định) và gọi một trình thông báo khi vùng chứa có sẵn.
Nếu loại mở là kTAGOpenTypePreferNonDefault
, thì vùng chứa không mặc định (được lưu hoặc truy xuất từ mạng) sẽ được tải và truyền vào trình thông báo. Trình thông báo được gọi ngay khi một trong các trường hợp sau xảy ra:
- sẽ tải một vùng chứa đã lưu.
- nếu chưa lưu vùng chứa, thì vùng chứa mạng sẽ được tải hoặc xảy ra lỗi mạng.
- bộ tính giờ sẽ hết hạn.
Nếu xảy ra lỗi mạng hoặc bộ tính giờ hết hạn, thì vùng chứa được chuyển vào trình thông báo sẽ là vùng chứa mặc định.
Nếu loại mở là kTAGOpenTypePreferFresh
, thì vùng chứa mới (được lưu hoặc truy xuất từ mạng) sẽ được tải và chuyển vào trình thông báo. Trình thông báo được gọi ngay khi một trong các trường hợp sau xảy ra:
- sẽ tải một vùng chứa mới đã lưu.
- nếu không có vùng chứa nào được lưu hoặc vùng chứa đã lưu đã cũ, thì vùng chứa mạng sẽ được tải hoặc xảy ra lỗi mạng.
- bộ tính giờ sẽ hết hạn.
Nếu xảy ra lỗi mạng hoặc bộ tính giờ hết hạn, thì vùng chứa được chuyển vào trình thông báo có thể chứa giá trị mặc định hoặc vùng chứa đã lưu cũ.
Nếu bạn gọi một trong các phương thức openContainer lần thứ hai bằng containerId
nhất định, thì vùng chứa đó được trả về từ lệnh gọi trước đó sẽ được chuyển vào trình thông báo ngay khi có sẵn.
- Các tham số:
-
containerId Mã vùng chứa cần tải. tagManager TAGManager được dùng để lấy vùng chứa. openType Lựa chọn cách mở vùng chứa. tạm ngừng Số giây tối đa phải chờ để tải vùng chứa từ cửa hàng đã lưu. Nếu giá trị bằng 0, hệ thống sẽ sử dụng defaultTimeout. trình thông báo Trình thông báo không bắt buộc sẽ được gọi khi có vùng chứa. Vùng chứa mới sẽ được gọi nếu có và được tải trước khi hết thời gian chờ; nếu không thì hàm đó sẽ được gọi bằng một vùng chứa không mới. Lưu ý rằng trình thông báo có thể được gọi từ một luồng khác.
+ (NSTimeInterval) defaultTimeout |
Trả về thời gian chờ mặc định để yêu cầu vùng chứa.
- Trường hợp trả lại hàng:
- Thời gian chờ mặc định tính bằng giây.