【问题标题】:iOS & Mopub: app freezes when loading ad on a slow networkiOS 和 Mopub:在慢速网络上加载广告时应用程序冻结
【发布时间】:2013-08-02 09:38:54
【问题描述】:

我的代码如下所示,如入门指南中所述,请参阅链接: 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 秒。这是不可接受的行为。 有解决办法吗?

【问题讨论】:

    标签: ios mopub


    【解决方案1】:

    您可以尝试将 loadAd 方法链接到计时器或更好地使用基于块的可达性。 您可以从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];
    
        };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多