我有一個連接到網絡時顯示正常的iAd。在iOS模擬器上或在我的設備上測試,如果我打開我的應用程序,看到iAd,然後進入設置並打開飛行模式,並返回到應用程序,橫幅滑出屏幕。大。現在,如果我關閉飛行模式(網絡打開),則iAd不會重新出現 - 即使在等待10-15分鐘後。網絡斷開後的iAd刷新
所以,這裏是我的問題:
是否iAd的測試公告會(每分鐘左右)刷新本身一樣作爲一個真正的iAd?
當檢測到網絡時,是否有辦法強制iAd刷新並請求新廣告?
我只是找不到在測試廣告的行爲信息的任何地方,我不能與真正的廣告測試,直到我上傳應用程序在App Store(右?)
繼承人我的代碼:
在其中創建的iAd:
- (void)viewDidLoad
{
adView = [[ADBannerView alloc] initWithFrame:CGRectMake(0, 410, 320, 50)];
adView.frame = CGRectOffset(adView.frame, 0, 50);
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait];
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait;
[self.view addSubview:adView];
adView.delegate=self;
self.bannerIsVisible=NO;
[super viewDidLoad];
}
和委託方法:
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
{
NSLog(@"AdWin");
if (!self.bannerIsVisible)
{
[UIView beginAnimations:@"animateAdBannerOn" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, -50);
[UIView commitAnimations];
self.bannerIsVisible = YES;
}
}
- (void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error
{
NSLog(@"AdLose");
if (self.bannerIsVisible)
{
[UIView beginAnimations:@"animateAdBannerOff" context:NULL];
banner.frame = CGRectOffset(banner.frame, 0, 50);
[UIView commitAnimations];
self.bannerIsVisible = NO;
}
}
委託方法NSLog
調用只出現一次 - 不是每一分鐘,就像我期望廣告得到刷新一樣。
感謝您的建議。讓我感到困惑的是,我在iPhone上使用interent連接啓動應用程序(使用xCode),並按預期每60秒獲得一次「AdWin」日誌。如果我以相同的方式啓動應用程序,除了啓用飛行模式之後,我只在我的日誌中獲得「AdLose」一次。我預計它會每60秒失敗一次。它給出的錯誤是:'錯誤域= ADErrorDomain代碼= 1「操作無法完成。(ADErrorDomain錯誤1。)」' –
我被困在這一點,我相信的關鍵是你收到一個ADError,在我的測試中,我收到一個NSURL錯誤,顯然NSURL錯誤處理得很好。我會建議包括一個邏輯,如:當錯誤是和ADErrorxxx殺死橫幅並重新開始它(即釋放+ realloc在viewDidLoad)。 – gregory
我打算將其標記爲已接受的答案,因爲這是最有幫助的。我很滿意我的工作,因爲我下載了蘋果示例程序'iAdSuite',並發現它在相同的條件下給出了相同的錯誤。謝謝 –