Opis
Klasa pomocnicza do otwierania kontenerów.
Jest to kod obejmujący metodę openContainerById:callback: (TAGManager) w przypadku elementów wywołujących, która zapewnia obsługę limitów czasu.
Oto przykład pokazujący po 0,1 sekundy, że kontener zostanie wczytany, zanim przywrócisz domyślny kontener:
NSTimeInterval timeout = 0.1; TagManager *tagManager = [TagManager instance]; TAGContainerFuture *future = [TAGContainerOpener openContainerWithId:@"GTM-XXXX" tagManager:tagManager openType:kTAGOpenTypePreferNonDefault timeout:&timeout]; TAGContainer *container = [future get];
Jeśli element wywołujący chce otrzymywać asynchroniczne powiadomienia o dostępności kontenera, ale chce ręcznie ustawić czas oczekiwania na 0,5 sekundy, powinien utworzyć podklasę TAGContainerOpenerNotifier, wywołać metodę openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) z czasem oczekiwania ustawionym na 0.5 oraz dodaj implementację TAG do interfejsu containerOpenerAvailable na potrzeby powiadomienia containerOpenerAvailable (w języku angielskim):
Statyczne publiczne funkcje członkowskie | |
(id< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
Czeka do timeout s na wczytanie kontenera (niedomyślny lub aktualny w zależności od określonego elementu openType ) i zwraca TAGContainerFuture . | |
(void) | + openContainerWithId:tagManager:openType:timeout:notifier: |
Czeka do timeout sekund na wczytanie kontenera (niedomyślny lub aktualny w zależności od określonego elementu openType ) i wywołuje powiadomienie, gdy kontener jest dostępny. | |
(NSTimeInterval) | + defaultTimeout |
Zwraca domyślny czas oczekiwania przy żądaniu kontenera. |
Dokumentacja funkcji członka grupy
+ (id<TAGContainerFuture>) openContainerWithId: | (NSString *) | containerId | |
Menedżer tagów: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType) | openType | |
wygaszanie: | (NSTimeInterval *) | timeout (Limit czasu) | |
Czeka do timeout
s na wczytanie kontenera (niedomyślny lub aktualny w zależności od określonego elementu openType
) i zwraca TAGContainerFuture
.
Jeśli typ otwarcia to kTAGOpenTypePreferNonDefault
, zostanie wczytany kontener inny niż domyślny (zapisany lub pobrany z sieci), a TAGContainerFuture
zostanie odblokowany w jednej z tych sytuacji:
- wczytany kontener.
- Jeśli nie ma zapisanego kontenera, kontener sieci jest załadowany lub występuje błąd sieci.
- minie czas.
Jeśli wystąpi błąd sieci lub upłynie czas, funkcja get (TAGContainerFuture-p) może zwrócić kontener domyślny.
Jeśli typ otwarty to kTAGOpenTypePreferFresh
, zostanie wczytany nowy kontener (zapisany lub pobrany z sieci), a obiekt TAGContainerFuture zostanie odblokowany w następujących sytuacjach:
- wczytany nowy kontener.
- Jeśli nie ma zapisanego kontenera lub takiego kontenera jest nieaktualny, kontener sieci jest wczytywany lub występuje błąd sieci.
- minie czas.
Jeśli wystąpi błąd sieci lub upłynie czas, funkcja get (TAGContainerFuture-p) może zawierać wartości domyślne lub nieaktualny zapisany kontener.
Jeśli ponownie wywołasz jedną z metod openContainer z określoną wartością containerId
, zwrócony zostanie parametr TAGContainerFuture
, którego element get (TAGContainerFuture-p) zwróci ten sam kontener, co pierwsze wywołanie.
- Parametry:
-
containerId Identyfikator kontenera do wczytania. tagManager TAGManager służący do pobierania kontenera. przerwa w grze Maksymalny czas oczekiwania na wczytanie kontenera z zapisanego sklepu. W przypadku wartości nil używana jest wartość defaultTimeout. openType Wybór sposobu otwierania kontenera.
- Zwraca:
- TAGContainerFuture, która poczeka do
timeout
i zwróci kontener, gdy będzie dostępny.
+ (void) – openContainerWithId: | (NSString *) | containerId | |
Menedżer tagów: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType) | openType | |
wygaszanie: | (NSTimeInterval *) | limit czasu | |
powiadomienie: | (id< TAGContainerOpenerNotifier >) | notifier | |
Czeka do timeout
sekund na wczytanie kontenera (niedomyślny lub aktualny w zależności od określonego elementu openType
) i wywołuje powiadomienie, gdy kontener jest dostępny.
Jeśli typem otwarcia jest kTAGOpenTypePreferNonDefault
, kontener inny niż domyślny (zapisany lub pobrany z sieci) zostanie wczytany i przekazany do powiadomienia. Powiadomienia są wywoływane natychmiast po wystąpieniu jednej z następujących sytuacji:
- wczytany kontener.
- Jeśli nie ma zapisanego kontenera, kontener sieci jest załadowany lub występuje błąd sieci.
- minie czas.
Jeśli wystąpi błąd sieci lub upłynie czas, kontener przekazany do powiadomienia jest kontenerem domyślnym.
Jeśli typem otwarcia jest kTAGOpenTypePreferFresh
, nowy kontener (zapisany lub pobrany z sieci) zostanie wczytany i przekazany do powiadomienia. Powiadomienia są wywoływane natychmiast po wystąpieniu jednej z następujących sytuacji:
- wczytany nowy kontener.
- Jeśli nie ma zapisanego kontenera lub takiego kontenera jest nieaktualny, kontener sieci jest wczytywany lub występuje błąd sieci.
- minie czas.
Jeśli wystąpi błąd sieci lub upłynie czas, kontener przekazany do powiadomienia może zawierać wartości domyślne lub nieaktualny zapisany kontener.
Jeśli ponownie wywołasz jedną z metod openContainer z użyciem podanej wartości containerId
, ten sam kontener zwrócony z poprzedniego wywołania zostanie przekazany do powiadomienia, gdy tylko będzie dostępny.
- Parametry:
-
containerId Identyfikator kontenera do wczytania. tagManager Parametr TAGManager używany do pobrania kontenera. openType Wybór sposobu otwierania kontenera. przerwa w grze Maksymalny czas oczekiwania na wczytanie kontenera z zapisanego sklepu. W przypadku wartości nil używana jest wartość defaultTimeout. powiadomienie Opcjonalny powiadomienie, które zostanie wywołane, gdy kontener będzie dostępny. Zostanie wywołana ze nowym kontenerem (jeśli jest dostępna) i wczytana przed upływem czasu oczekiwania. W przeciwnym razie zostanie wywołana z nieświeżym kontenerem. Pamiętaj, że powiadamianie może być wywoływane z innego wątku.
+ (NSTimeInterval) defaultTimeout |
Zwraca domyślny czas oczekiwania przy żądaniu kontenera.
- Zwraca:
- Domyślny limit czasu w sekundach.