在iOS 6中使用authenticateHandler时,如果用户取消了登录视图,game center将不会呈现该视图。我知道game center会自动锁定应用程序,经过3次取消尝试后,但是我指的是只有2次尝试的情况。如果他们取消了登录,他们必须离开应用并返回才能再次显示登录,即使设置了authenticateHandler也是如此。有没有想法如何处理这种情况在iOS 6中?
当使用旧的authenticateWithCompletionHandler方法时,它可以正常工作:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0
GKLocalPlayer.localPlayer.authenticateHandler = authenticateLocalPlayerCompleteExtended;
#else
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:authenticateLocalPlayerComplete];
#endif
这对我的应用程序很重要,因为它需要Game Center进行多人游戏。 应用程序尝试在启动时对游戏中心进行身份验证,但如果用户取消了,我们不会再次询问他们,这样他们就不会被打扰。我们所做的是,在选择多人游戏时,如果他们没有登录,则显示一个Game Center登录按钮。登录按钮通过调用authenticateWithCompletionHandler(现在通过再次设置GKLocalPlayer.localPlayer.authenticateHandler)强制进行游戏中心登录。