Riferimento alla classe TAGContainerOpener

Riferimento alla classe TAGContainerOpener

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:
containerIdL'ID del container da caricare.
tagManagerTAGManager per ottenere il contenitore.
timeoutIl numero massimo di secondi di attesa prima di caricare il contenitore dall'archivio salvato. Se il valore è null, verrà utilizzato defaultTimeout.
openTypeLa 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:
containerIdL'ID del container da caricare.
tagManagerIl TAGManager utilizzato per ottenere il contenitore.
openTypeLa scelta di come aprire il contenitore.
timeoutIl numero massimo di secondi di attesa prima di caricare il contenitore dall'archivio salvato. Se il valore è null, verrà utilizzato defaultTimeout.
notificatoreNotificatore 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.