Übersicht
Eine Hilfsklasse zum Öffnen von Containern.
Dies ist ein Wrapper um die Methode openContainerById:callback: (TAGManager) für Aufrufer, die Unterstützung für Zeitlimits bietet.
Im Folgenden sehen Sie ein Beispiel, das zeigt, wie bis zu 0,1 Sekunden auf das Laden des Containers gewartet wird, bevor er zum Standardcontainer zurückkehrt:
NSTimeInterval timeout = 0.1; TagManager *tagManager = [TagManager instance]; TAGContainerFuture *future = [TAGContainerOpener openContainerWithId:@"GTM-XXXX" tagManager:tagManager openType:kTAGOpenTypePreferNonDefault timeout:&timeout]; TAGContainer *container = [future get];
Wenn der Aufrufer asynchron benachrichtigt werden möchte, wenn der Container verfügbar ist, aber das Zeitlimit manuell auf 0,5 Sekunden festlegen möchte, sollte der Aufrufer TAGContainerOpenerNotifier als abgeleitete Klasse erstellen, openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) aufrufen und das Zeitlimit auf 0.5 setzen.Fügen Sie dann die Implementierung zu container: (TAGContainerOpenerNotifier zur Verarbeitung der Benachrichtigung "container: (TAG)OpenerNotifier" hinzu.
Statische öffentliche Mitgliederfunktionen | |
(id< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
Wartet bis zu timeout Sekunden, bis ein Container geladen wird (nicht standardmäßig oder aktuell, abhängig vom angegebenen openType ) und gibt TAGContainerFuture zurück. | |
(nicht zutreffend) | + openContainerWithId:tagManager:openType:timeout:notifier: |
Wartet bis zu timeout Sekunden, bis ein Container geladen wird (nicht standardmäßig oder je nach angegebenem openType ) und ruft einen Notifier auf, wenn der Container verfügbar ist. | |
(NSTimeInterval) | + defaultTimeout |
Gibt das Standardzeitlimit für das Anfordern des Containers zurück. |
Dokumentation zu Mitgliederfunktionen
+ (id<TAGContainerFuture>) openContainerWithId: | (NSString *) | containerId | |
TagManager verwenden: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType) | openType | |
Zeitüberschreitung: | (NSTimeInterval *) | Zeitüberschreitung | |
Wartet bis zu timeout
Sekunden, bis ein Container geladen wird (nicht standardmäßig oder aktuell, abhängig vom angegebenen openType
) und gibt TAGContainerFuture
zurück.
Wenn der offene Typ kTAGOpenTypePreferNonDefault
ist, wird ein nicht standardmäßiger Container (gespeichert oder aus dem Netzwerk abgerufen) geladen und die Blockierung von TAGContainerFuture
wird aufgehoben, sobald eines der folgenden Ereignisse eintritt:
- wird ein gespeicherter Container geladen.
- Wenn kein gespeicherter Container vorhanden ist, wird ein Netzwerkcontainer geladen oder tritt ein Netzwerkfehler auf.
- der Timer abläuft.
Wenn ein Netzwerkfehler auftritt oder der Timer abläuft, gibt get (TAGContainerFuture-p) möglicherweise einen Standardcontainer zurück.
Wenn der offene Typ kTAGOpenTypePreferFresh
ist, wird ein neuer (gespeicherter oder aus dem Netzwerk abgerufener) Container geladen und die Blockierung von TAGContainerFuture wird aufgehoben, sobald eines der folgenden Ereignisse eintritt:
- wird ein neuer gespeicherter Container geladen.
- Wenn kein gespeicherter Container vorhanden ist oder ein gespeicherter Container veraltet ist, ein Netzwerkcontainer geladen wird oder ein Netzwerkfehler auftritt.
- der Timer abläuft.
Wenn ein Netzwerkfehler auftritt oder der Timer abläuft, enthält get (TAGContainerFuture-p) möglicherweise Standardwerte oder einen veralteten gespeicherten Container.
Wenn Sie eine der openContainer-Methoden ein zweites Mal mit einem bestimmten containerId
aufrufen, wird ein TAGContainerFuture
zurückgegeben, dessen get (TAGContainerFuture-p) den gleichen Container wie beim ersten Aufruf zurückgibt.
- Parameter:
-
containerId Die ID des zu ladenden Containers. tagManager Den TAGManager zum Abrufen des Containers Zeitüberschreitung Die maximale Wartezeit in Sekunden, bis der Container aus dem gespeicherten Speicher geladen wird. Wenn der Wert null ist, wird defaultTimeout verwendet. openType Die Auswahl, wie der Container geöffnet werden soll.
- Gibt zurück:
- Eine TAGContainerFuture, die bis zu
timeout
wartet und den Container zurückgibt, wenn er verfügbar ist.
+ (void) openContainerWithId: | (NSString *) | containerId | |
TagManager verwenden: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType) | openType | |
Zeitüberschreitung: | (NSTimeInterval *) | Zeitüberschreitung | |
Notifier: | (id< TAGContainerOpenerNotifier >) | benachrichtiger | |
Wartet bis zu timeout
Sekunden, bis ein Container geladen wird (nicht standardmäßig oder je nach angegebenem openType
) und ruft einen Notifier auf, wenn der Container verfügbar ist.
Wenn der offene Typ kTAGOpenTypePreferNonDefault
ist, wird ein nicht standardmäßiger Container (gespeichert oder aus dem Netzwerk abgerufen) geladen und an den Notifier übergeben. Der Notifier wird aufgerufen, sobald eines der folgenden Ereignisse eintritt:
- wird ein gespeicherter Container geladen.
- Wenn kein gespeicherter Container vorhanden ist, wird ein Netzwerkcontainer geladen oder tritt ein Netzwerkfehler auf.
- der Timer abläuft.
Wenn ein Netzwerkfehler auftritt oder der Timer abläuft, ist der an den Notifier übergebene Container ein Standardcontainer.
Wenn der offene Typ kTAGOpenTypePreferFresh
ist, wird ein neuer (gespeicherter oder aus dem Netzwerk abgerufener) Container geladen und an den Notifier übergeben. Der Notifier wird aufgerufen, sobald eines der folgenden Ereignisse eintritt:
- wird ein neuer gespeicherter Container geladen.
- Wenn kein gespeicherter Container vorhanden ist oder ein gespeicherter Container veraltet ist, ein Netzwerkcontainer geladen wird oder ein Netzwerkfehler auftritt.
- der Timer abläuft.
Wenn ein Netzwerkfehler auftritt oder der Timer abläuft, enthält der an den Notifier übergebene Container möglicherweise Standardwerte oder einen veralteten gespeicherten Container.
Wenn Sie eine der openContainer-Methoden ein zweites Mal mit einem bestimmten containerId
aufrufen, wird derselbe Container, der vom vorherigen Aufruf zurückgegeben wurde, an den Notifier übergeben, sobald er verfügbar ist.
- Parameter:
-
containerId Die ID des zu ladenden Containers. tagManager Der TAGManager, der zum Abrufen des Containers verwendet wird. openType Die Auswahl, wie der Container geöffnet werden soll. Zeitüberschreitung Die maximale Wartezeit in Sekunden, bis der Container aus dem gespeicherten Speicher geladen wird. Wenn der Wert null ist, wird defaultTimeout verwendet. Notifier Einen optionalen Notifier, der aufgerufen wird, wenn der Container verfügbar ist. Er wird mit dem neuen Container aufgerufen, falls verfügbar, und vor dem Zeitlimit geladen. Andernfalls wird sie mit einem nicht aktuellen Container aufgerufen. Beachten Sie, dass der Notifier von einem anderen Thread aus aufgerufen werden kann.
+ (NSTimeInterval) defaultTimeout |
Gibt das Standardzeitlimit für das Anfordern des Containers zurück.
- Gibt zurück:
- Das standardmäßige Zeitlimit in Sekunden.