iOS 和 Mopub : app freezes when loading ad on a slow network

标签 ios mopub

如入门指南中所述,我的代码如下所示,请参阅链接: http://help.mopub.com/customer/portal/articles/82831-start-guide

- (void)viewDidLoad {
    self.adView = [[MPAdView alloc]   initWithAdUnitId:@"xxx" size:MOPUB_BANNER_SIZE];
    self.adView.delegate = self;
    self.adView.frame = CGRectMake(0, self.view.bounds.size.height - MOPUB_BANNER_SIZE.height, MOPUB_BANNER_SIZE.width, MOPUB_BANNER_SIZE.height);
    self.adView.keywords = keywords;
    [self.view addSubview:self.adView];
    [self.adView loadAd];
    [super viewDidLoad];
}

问题是当我启动应用程序时,它会启动加载广告的 viewDidLoad 函数。当网络非常缓慢或不存在时,广告加载将卡住应用程序的执行约 20 秒。这是 Not Acceptable 行为。 有解决方案吗?

最佳答案

您可以尝试将 loadAd 方法链接到计时器或更好地使用基于 block 的可达性。 您可以从 here 获得可达性.

// in view header file
NSTimer * aTimer;

//in implementation
-(void)viewDidLoad
{
    ...
    [self.view addSubview:self.adView];
    [self.adview setHidden:YES];

    [self loadAdIfReachable];
     ...
}

-(void) loadAdIfReachable{
    // Allocate a reachability object
    Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];

    // Set the blocks 
    reach.reachableBlock = ^(Reachability*reach)
    {
        NSLog(@"REACHABLE!");
        [self.adview setHidden:NO];
        [self.adView loadAd];

    };
}

关于iOS 和 Mopub : app freezes when loading ad on a slow network,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18013603/

相关文章:

ios - 无法将 PageViewController 类型的值转换为另一个 Controller

ios - 在获取实时广告的同时停止 mopub 的测试广告

android - 无法使用 android MoPub sdk gradle 初始化 Fabric

ios - 显示横幅广告时,多点触控无法在具有robovm和libGDX的iOS上运行

ios - ActionSheet 抛出无法识别的选择器发送到实例

ios - 应用程序特定的本地日历组不保存在 ios 9 但在 ios10 中工作

android - mopub android studio millennialmedia 未解决

android - AdMob 通过 MoPub - 没有足够的空间来展示广告

ios - 在表格 View 单元格中单击按钮时如何使用参数调用 View Controller

使用 * 和 # 添加号码的 IOS 调用电话号码