Panoramica
Un corso helper per l'apertura dei container.
Si tratta di un wrapper attorno al metodo openContainerById:callback: (TAGManager) per i chiamanti che fornisce supporto per i timeout.
Di seguito è riportato un esempio che mostra l'attesa fino a 0,1 secondi per il caricamento del container prima di ripristinare il contenitore predefinito:
NSTimeInterval timeout = 0.1; TagManager *tagManager = [TagManager instance]; TAGContainerFuture *future = [TAGContainerOpener openContainerWithId:@"GTM-XXXX" tagManager:tagManager openType:kTAGOpenTypePreferNonDefault timeout:&timeout]; TAGContainer *container = [future get];
Se il chiamante vuole ricevere una notifica asincrona quando il contenitore è disponibile, ma vuole specificare manualmente il timeout su 0,5 secondi, deve impostare la sottoclasse TAGContainerOpenerNotifier, effettuare la chiamata a openContainerWithId:tagManager:openType:timeout:notifier: (TAGContainerOpener) con timeout impostato su 0,5 e aggiungere l'implementazione a containerAvailable: (pTAGContainerOpenerNotifier-Notification available.
Funzioni membri pubbliche statiche | |
(id< TAGContainerFuture >) | + openContainerWithId:tagManager:openType:timeout: |
Attende fino a timeout secondi il caricamento di un container (non predefinito o aggiornato in base al valore openType specificato) e restituisce TAGContainerFuture . | |
(void) | + openContainerWithId:tagManager:openType:timeout:notifier: |
Attende fino a timeout secondi il caricamento di un contenitore (non predefinito o aggiornato in base al valore openType specificato) e chiama un avviso quando il contenitore è disponibile. | |
(NSTimeIntervallo) | + defaultTimeout |
Restituisce il timeout predefinito per richiedere il container. |
Documentazione sulle funzioni membri
+ (id<TAGContainerFuture>) openContainerWithId: | (NSString *) | containerId | |
TagManager: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType) | openType | |
timeout: | (NSTimeRange *) | timeout | |
Attende fino a timeout
secondi il caricamento di un container (non predefinito o aggiornato in base al valore openType
specificato) e restituisce TAGContainerFuture
.
Se il tipo aperto è kTAGOpenTypePreferNonDefault
, viene caricato un contenitore non predefinito (salvato o recuperato dalla rete) e TAGContainerFuture
viene sbloccato non appena si verifica una delle seguenti condizioni:
- viene caricato un container salvato.
- Se non esiste un container salvato, viene caricato un contenitore di rete o si verifica un errore di rete.
- il timer scade.
Se si verifica un errore di rete o il timer scade, get (TAGContainerFuture-p) potrebbe restituire un contenitore predefinito.
Se il tipo aperto è kTAGOpenTypePreferFresh
, viene caricato un contenitore nuovo (salvato o recuperato dalla rete) e TAGContainerFuture viene sbloccato non appena si verifica una delle seguenti condizioni:
- viene caricato un container aggiornato salvato.
- Se non è presente alcun contenitore salvato o se il contenitore è inattivo, viene caricato un contenitore di rete o si verifica un errore di rete.
- il timer scade.
Se si verifica un errore di rete o il timer scade, il metodo get (TAGContainerFuture-p) potrebbe contenere valori predefiniti o un contenitore salvato inattivo.
Se chiami uno dei metodi openContainer una seconda volta con un determinato containerId
, verrà restituito un TAGContainerFuture
il cui get (TAGContainerFuture-p) restituirà lo stesso contenitore della prima chiamata.
- Parametri:
-
containerId L'ID del container da caricare. tagManager TAGManager per ottenere il contenitore. timeout Il numero massimo di secondi di attesa prima di caricare il contenitore dall'archivio salvato. Se il valore è null, verrà utilizzato defaultTimeout. openType La scelta di come aprire il contenitore.
- Resi:
- Un TAGContainerFuture che attende fino a
timeout
e restituisce il contenitore quando è disponibile.
+ (void) openContainerWithId: | (NSString *) | containerId | |
TagManager: | (TAGManager *) | tagManager | |
openType: | (TAGOpenType) | openType | |
timeout: | (NSTimeRange *) | timeout | |
notificatore: | (id< TAGContainerOpenerNotifier >) | avviso | |
Attende fino a timeout
secondi il caricamento di un contenitore (non predefinito o aggiornato in base al valore openType
specificato) e chiama un avviso quando il contenitore è disponibile.
Se il tipo aperto è kTAGOpenTypePreferNonDefault
, un contenitore non predefinito (salvato o recuperato dalla rete) viene caricato e trasmesso al notificante. L'autore della notifica viene chiamato non appena si verifica una delle seguenti condizioni:
- viene caricato un container salvato.
- Se non esiste un container salvato, viene caricato un contenitore di rete o si verifica un errore di rete.
- il timer scade.
Se si verifica un errore di rete o il timer scade, il contenitore trasferito al notificante diventa predefinito.
Se il tipo aperto è kTAGOpenTypePreferFresh
, un container nuovo (salvato o recuperato dalla rete) viene caricato e trasmesso al notificante. L'autore della notifica viene chiamato non appena si verifica una delle seguenti condizioni:
- viene caricato un container aggiornato salvato.
- Se non è presente alcun contenitore salvato o se il contenitore è inattivo, viene caricato un contenitore di rete o si verifica un errore di rete.
- il timer scade.
Se si verifica un errore di rete o il timer scade, il contenitore trasferito al notificante potrebbe contenere valori predefiniti o un contenitore salvato inattivo.
Se chiami uno dei metodi openContainer una seconda volta con un valore containerId
specifico, lo stesso container restituito dalla chiamata precedente verrà passato al notificante non appena è disponibile.
- Parametri:
-
containerId L'ID del container da caricare. tagManager Il TAGManager utilizzato per ottenere il contenitore. openType La scelta di come aprire il contenitore. timeout Il numero massimo di secondi di attesa prima di caricare il contenitore dall'archivio salvato. Se il valore è null, verrà utilizzato defaultTimeout. notificatore Notificatore facoltativo che verrà chiamato quando il container è disponibile. Verrà chiamata con il container nuovo, se disponibile e caricato prima del timeout, altrimenti verrà richiamata con un container non aggiornato. Tieni presente che l'autore della notifica potrebbe essere chiamato da un thread diverso.
+ (NSTimeIntervallo) defaultTimeout |
Restituisce il timeout predefinito per richiedere il container.
- Resi:
- Il timeout predefinito in secondi.