1

我将 Chartboost interstitial at 称为applicationDidBecomeActiveChartboost我的游戏使用的是游戏中心,有时会在插页式阻止窗口下弹出 GC 授权Chartboost窗口。唯一的解决方案是切换到GameCenter那里并登录。是否可以检查显示的授权窗口?

4

2 回答 2

2

在屏幕上显示 Game Center 登录时阻止广告可能是一种选择!代码仅适用于 iOS6 顺便说一句

@interface ChartboostBridge : NSObject<ChartboostDelegate>
@end

@implementation ChartboostBridge 

- (BOOL)shouldDisplayInterstitial:(NSString *)location{

    NSLog(@"CB shouldDisplayInterstitial for %@",location);

    if ([location isEqualToString:@"game_launch"]) {

        if( [[GameCenterIos shared ] hasLogInView] ){

            return NO;
        }

    }

    return YES;
}

@end


@implementation GameCenterIos

- (BOOL)hasLogInView{

    return  isViewOnScreen;
}

- (void)login
{
    GKLocalPlayer* localPlayer = [GKLocalPlayer localPlayer];
    if (localPlayer.isAuthenticated) {
        isViewOnScreen=NO;
        return;
    }

    localPlayer.authenticateHandler =
        ^(UIViewController *viewController,
    NSError *error) {


        if (localPlayer.authenticated) {
            isAuthenticated = YES;
            isViewOnScreen=NO;
        } else if(viewController) {
            NSLog(@"Game Center shows login ....");
            isViewOnScreen=YES;
            [self presentViewController:viewController];
        } else {
            NSLog(@"Game Center error or canceled login ....");
            //User canceled Login view
            isAuthenticated = NO;
            isViewOnScreen=NO;
        }
    };
}

#pragma mark UIViewController stuff

-(UIViewController*) getRootViewController {
    return [UIApplication 
        sharedApplication].keyWindow.rootViewController;
}

-(void)presentViewController:(UIViewController*)vc {
    UIViewController* rootVC = [self getRootViewController];
    [rootVC presentViewController:vc animated:YES 
        completion:nil];
}

@end
于 2013-05-29T21:25:04.740 回答
0

这是一个老问题,但我遇到了同样的问题并找到了解决方法。

将游戏中心登录视图(由 ios 6 身份验证处理程序返回)的 modalPresentationStyle 更改为UIModalPresentationFullScreen

在 iPhone 上,当 gamecenter 登录和 chartboost interstitial 出现时,屏幕不会锁定。仅在 Ipad 上发生。有什么区别?在 ipad 中登录不是全屏的。所以我测试了将其更改为全屏,现在它可以在没有锁定的情况下工作 =)

于 2014-07-21T14:08:14.457 回答