【问题标题】:iOS - detecting if Game Center is disablediOS - 检测游戏中心是否被禁用
【发布时间】:2011-09-05 03:24:27
【问题描述】:

我正在开发一款统一的 iPhone 游戏。

短版: 当用户拒绝验证 3 次时,可以禁用游戏中心。可以检测到这种禁用状态吗?

长版: 如果你们中的一些人还没有发现这一点的恐惧,如果您取消游戏中心身份验证尝试 3 次,游戏中心将停止提示您登录。之后,游戏中心功能将不起作用,也不尝试使用时会通知您吗?你什么也得不到。你的按钮会失效。

但是,GC 返回了一条无法描述的错误消息。我想——嘿,当错误消息返回时,我会在其中粘贴一个小警报视图,通知用户游戏中心已禁用。

好吧,那将是愚蠢的,因为事实证明,当您在实际身份验证提示上单击取消时,也会显示该特定错误消息......甚至在我相信的其他情况下也是如此。所以到目前为止,我可以选择在游戏中心被禁用时永远不告诉玩家,并希望他们解决这个问题,或者当他们真正拒绝时,以一种令人讨厌的、破碎的方式向他们发送垃圾邮件好吧。

有没有办法以编程方式检测游戏中心何时以这种方式被禁用?那肯定会让每个人都免于该死的心痛。我假设答案是否定的,因为不向用户发送垃圾邮件可能首先是这背后的想法。告诉我我错了,某人!

【问题讨论】:

标签: iphone ios game-center


【解决方案1】:

我总是检查我的游戏是否有 3 次错误尝试。所以我知道游戏中心已被禁用,当用户单击游戏中心按钮时,我可以选择切换到游戏中心并登录。

【讨论】:

  • 这不是答案,这就是你要做的
  • 是的,我想是的@Roel。但是如何检测到用户取消了 3 次?
【解决方案2】:

据我所知,没有办法。游戏中心并未完全禁用,但您需要转到游戏中心应用程序并从那里登录才能再次使用它。因此,如果尝试使用游戏中心失败,您可以建议您的用户执行此操作(从游戏中心应用程序登录)。 这不是最好的解决方案,因为您不知道它失败的确切原因,但到目前为止我还没有找到更好的解决方案。

【讨论】:

    【解决方案3】:

    我最近遇到了同样的错误,并发现了以下问题。当您对本地玩家进行身份验证时,您会发现一个错误,让您知道 Game Center 已被禁用。

    - (void) authenticateLocalPlayer
    {
        GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
        [localPlayer authenticateWithCompletionHandler:^(NSError *error) {
             if (error != nil)
             {
                 // You get here if Game Center is disabled -- check error
                 // to figure out what's going on.
             }
         }];
    }
    

    See here for Apple's documentation.

    【讨论】:

    • 错误总是Error Domain=GKErrorDomain Code=2 "The requested operation has been cancelled." UserInfo=0xa564f10 {NSLocalizedDescription=The requested operation has been cancelled.}无论用户只是取消了游戏中心模式还是完全禁用了应用程序。
    • 其实我得到请求的操作已被用户取消_或禁用._
    【解决方案4】:

    在 iOS 7 上解决这个问题的唯一方法是

    设置/常规/重置/重置所有设置

    从那里,您只需再次启动您的应用程序。游戏中心登录将再次起作用。

    【讨论】:

    • 有人可以编辑这个以超粗体显示的公然无关的答案吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多