我正在使用新的基于回合制的iOS5 API开发基于回合制的iOS游戏。
您需要为此实现的委托协议之一是GKTurnBasedEventHandlerDelegate。实现的方法之一是handleTurnEventForMatch。这是关于这种方法的Apple文档:
handleTurnEventForMatch
当本地玩家轮到你时,发送给代表 回合制比赛。
- (void)handleTurnEventForMatch:(GKTurnBasedMatch *)match
参数
match - 包含匹配当前状态的匹配对象。
讨论
当您的代表收到此消息时,播放器已接受a 推送已经进行的比赛的通知。你的游戏应该 结束它正在执行的任何任务并切换到匹配 匹配对象提供的信息。
我的大部分游戏都在运作。我收到通过上述方法收到的动作的通知。 我还看到应用程序图标上的徽章已成功更新。
但是,当转弯事件进入时,我没有收到任何其他系统通知;通知中心没有显示任何内容等。我是否需要在GameKit之外做一些事情才能启用此功能?当我获得handleTurnEventForMatch时,是否需要手动发送本地通知?文档似乎并不意味着没有,因为它上面说“当你的代表收到这条消息时,玩家已经接受了正在进行的比赛的推送通知。”
所以这似乎意味着玩家点击推送通知来调用此方法(但当然它们从未出现过,所以我没有!)
在我的应用中为基于回合的事件启用推送通知需要做什么?当我收到上述方法时,是否需要实际发送本地通知(考虑到上述文档的措辞,这似乎与意图相矛盾。)
答案 0 :(得分:14)
我刚刚完成了这个战斗,经过一个星期左右的时间撞到桌子后,我发现了这些重要的事情:
(1)模拟器不接收这些转弯通知。一旦我完成这项工作,它在两个设备之间工作正常。与设备进行比赛的模拟器将发送事件,但不会接收它们。因此,如果您尝试使用一台设备和模拟器进行测试,祝您好运。使用两个设备。
(2)确保在iTunes连接中启用了“为此版本启用了游戏中心”,并确保应用中的CFBundleVersion与此版本匹配。一旦我这样做,一切都开始有效。
我假设你已经做过: [GKTurnBasedEventHandler sharedTurnBasedEventHandler] .delegate = YOUR_DELEGATE_CLASS;
答案 1 :(得分:1)
答案 2 :(得分:0)
正如文档所述,当玩家接受推送通知时(通常通过解锁手机或通过通知中心)收到该消息。发送推送通知在Game Center客户端决定,并由GameKit自动为您完成。您不需要实现GKTurnBasedEventHandlerDelegate以使它们起作用,只需响应接受它们的玩家(通过自动返回到该匹配或其他任何内容)。
我认为值得仔细检查设备的通知设置,以确定您的应用已启用通知中心提醒。
答案 3 :(得分:-1)
您是否在iTunes connect /配置门户中设置了推送通知?您实际上需要一个特殊证书来启用推送。
在设置证书之前,我遇到了同样的问题。