Sto utilizzando l'SDK di Google AdMob (l'ultimo scaricato recentemente) nella mia app.La prima richiesta di Google AdMob GADBannerView richiede molto tempo e si blocca nell'interfaccia utente
Quando viene avviato, l'app si blocca per 4-5 secondi, fino a quando l'annuncio non viene caricato e visualizzato. Successivamente funziona senza intoppi. Quando commento la riga di richiesta del banner, l'app si avvia normalmente.
Ho creato una classe di supporto personalizzata, in cui ho il seguente codice.
- (void) getGoogleBanner:(UIViewController *) targetController
{
self.googleBannerView.rootViewController = targetController;
[self.googleBannerView.rootViewController.view addSubview:self.googleBannerView];
[self.googleBannerView setDelegate:self];
GADRequest* request = [GADRequest request];
[self.googleBannerView loadRequest:request];
}
dove
- googleBannerView è una proprietà della mia classe, e ha il tipo GADBannerView
- ho impostato la dimensione del frame e ID dell'unità pubblicitaria in anticipo correttamente
- targetController è il controller che voglio per aggiungere il banner
- io chiamo il [CustomClass getGoogleBanner: self] metodo viewDidAppear dei vari controller diversi e display con successo la bandiera, ad eccezione quel primo problema di caricamento.
Mi piacerebbe sapere se qualcuno ha incontrato questo problema e come è stato risolto. Sono aperto a qualsiasi idea che possa rimuovere il problema di congelamento. Ho provato a eseguire il codice su un thread in background, ma ho fallito perché non ne ho molta esperienza.
Qualsiasi aiuto è molto apprezzato, grazie in anticipo.
Puoi approfondire quale tipo di interfaccia utente hai in particolare e dove GADBannerView è nella tua gerarchia? Un ritardo di 4-5 secondi suona piuttosto grande, stai facendo una sorta di disegno complesso/animazioni? – RajPara
Non sto facendo nessun disegno complesso. In realtà tutta l'applicazione è costituita da UIViews e 2-3 TableViews. Le tabelle non hanno mai più di 50 elementi. Ho anche provato a inviare il metodo loadRequest: a un thread in background, tuttavia non ha funzionato, con un errore relativo alla modifica della finestra principale da un thread in background. Probabilmente questa funzione è già asincrona, perché è un metodo Google standard e la risposta viene catturata dal delegato di Google Banner View. –
capita lo stesso a me! Hai trovato qualche soluzione? – Aitul