【发布时间】:2013-11-29 18:59:36
【问题描述】:
根据Apple docs,我们应该这样做来处理 GC 身份验证:
- (void) authenticateLocalUser
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
if(localPlayer.authenticated == NO)
{
[localPlayer setAuthenticateHandler:(^(UIViewController* viewcontroller, NSError *error) {
if (!error && viewcontroller)
{
DLog(@"Need to log in");
AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
[appDelegate.window.rootViewController presentViewController:viewcontroller animated:YES completion:nil];
}
else
{
DLog(@"Success");
}
})];
}
}
我们得到了这些信息:
如果设备没有经过身份验证的玩家,Game Kit 会将视图控制器传递给您的身份验证处理程序。呈现时,此视图控制器显示身份验证用户界面。你的游戏应该暂停其他需要用户交互的活动(例如你的游戏循环),呈现这个视图控制器然后返回。当玩家完成与它的交互时,视图控制器会自动关闭。
我的问题是,我们如何知道这个视图控制器何时被解除,以及我们如何知道身份验证是否成功?
显然,我需要知道身份验证是否有效,并且我需要知道如果我不得不暂停游戏,因为出现了魔法 GC 视图控制器,何时恢复游戏。
【问题讨论】:
-
只是想知道在 2020 年 - 这个线程仍然相关,还是有一些新功能?我发现自己必须实施一种类似的相当不优雅的解决方案来解决这个问题。似乎有关 GameKit 最新迭代的帮助非常少。
标签: ios authentication game-center gamekit