我将 Chartboost interstitial at 称为applicationDidBecomeActive
。Chartboost
我的游戏使用的是游戏中心,有时会在插页式阻止窗口下弹出 GC 授权Chartboost
窗口。唯一的解决方案是切换到GameCenter
那里并登录。是否可以检查显示的授权窗口?
问问题
616 次
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 回答