Używam pakietu Google AdMob SDK (najnowszy pobrany niedawno) w mojej aplikacji.Google AdMob GADBannerWidok pierwszego żądania zajmuje dużo czasu i zawiesza interfejs użytkownika
Po uruchomieniu mojej aplikacji zawiesza się na 4-5 sekund, dopóki reklama nie zostanie załadowana i wyświetlona. Następnie działa płynnie. Po zakomentowaniu linii żądania baneru aplikacja uruchamia się normalnie.
Zrobiłem niestandardową klasę pomocniczą, w której mam następujący kod.
- (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];
}
gdzie
- googleBannerView jest własnością mojej klasy, a ma typ GADBannerView
- ustawić rozmiar ramki i identyfikator jednostki reklamowej uprzednio prawidłowo
- targetController jest kontroler chcę dodać baner do
- Zadzwonię do metody [CustomClass getGoogleBanner: self] w viewDidAppear różnych kontrolerów i pomyślnie wyświetl baner, z wyjątkiem ten pierwszy problem z ładowaniem.
Chciałbym wiedzieć, czy ktoś napotkał na ten problem i jak go rozwiązano. Jestem otwarty na wszelkie pomysły, które usuwają problem zamrażania. Próbowałem uruchomić kod do wątku w tle, ale nie udało mi się, ponieważ nie mam z tym dużego doświadczenia.
Każda pomoc jest doceniana, z góry dzięki.
Czy możesz opracować, jaki rodzaj interfejsu użytkownika masz konkretnie i gdzie GADBannerView jest w twojej hierarchii? Opóźnienie 4-5 sekund brzmi całkiem nieźle, czy robisz jakieś skomplikowane rysunki/animacje? – RajPara
Nie robię żadnego złożonego rysunku. W rzeczywistości cała aplikacja składa się z UIViews i 2-3 TableViews. Tabele nigdy nie mają więcej niż 50 elementów. Próbowałem również wysłać metodę loadRequest: do wątku w tle, jednak nie zadziałał, z błędem, który jest związany z modyfikowaniem okna głównego z wątku tła. Ta funkcja jest prawdopodobnie już asynchroniczna, ponieważ jest to standardowa metoda Google, a odpowiedź jest wybierana przez delegata Google Banner View. –
to samo dzieje się dla mnie! Czy znalazłeś jakieś rozwiązanie? – Aitul