Iphone 如何获取基于GameKit回合的比赛通知?

Iphone 如何获取基于GameKit回合的比赛通知?,iphone,objective-c,cocoa-touch,ipad,gamekit,Iphone,Objective C,Cocoa Touch,Ipad,Gamekit,我正在使用新的基于回合的iOS5 API开发一款基于回合的iOS游戏 为此需要实现的代理协议之一是GKTurnBasedEventHandlerDelegate。要实现的方法之一是handleTurnEventForMatch。这是Apple文档中关于此方法的内容: handleTurnEventForMatch 当轮到本地玩家在比赛中表演时发送给代表 回合制比赛 参数 匹配-包含匹配当前状态的匹配对象 讨论 当您的代表收到此消息时,播放机已接受 已在进行的匹配的推送通知。你的游戏应该 结束它正

我正在使用新的基于回合的iOS5 API开发一款基于回合的iOS游戏

为此需要实现的代理协议之一是GKTurnBasedEventHandlerDelegate。要实现的方法之一是handleTurnEventForMatch。这是Apple文档中关于此方法的内容:

handleTurnEventForMatch

当轮到本地玩家在比赛中表演时发送给代表 回合制比赛

参数

匹配-包含匹配当前状态的匹配对象

讨论

当您的代表收到此消息时,播放机已接受 已在进行的匹配的推送通知。你的游戏应该 结束它正在执行的任何任务并切换到匹配 匹配对象提供的信息

我的大部分游戏都很有效。我通过上述方法收到移动通知。 我还看到应用图标上的徽章被成功更新

然而,我没有收到任何其他系统通知时,轮流事件进来;通知中心中没有显示任何内容,等等。我是否需要在GameKit之外执行一些操作才能启用此功能?获取handleTurnEventForMatch时是否需要手动发送本地通知?这些文档似乎并不暗示这一点,因为上面说“当您的代理收到此消息时,玩家已经接受了正在进行的比赛的推送通知。”

因此,这似乎意味着玩家已经点击了一个推送通知来调用这个方法(当然,它们从来没有出现过,所以我没有!)


我需要做什么才能在我的应用程序中为基于回合的事件启用推送通知?当我收到上述方法时,是否需要发送本地通知(鉴于上述文档的冗长,这似乎与目的相矛盾)。

您是否在iTunes connect/资源调配门户中设置了推送通知?实际上,您需要一个特殊的证书来启用推送


在我设置证书之前,我和你有着同样的问题。

我刚刚完成了这项工作,在一周左右的时间里,我用头撞桌子,发现了这些重要的事情:

(1) 模拟器不接收这些转弯通知。一旦我完成了这项工作,它就可以在两台设备之间正常工作。一个模拟器对一个设备播放会发送事件,但不会接收它们。因此,如果您试图使用一个设备和模拟器来测试这一点,祝您好运。使用两种设备

(2) 确保在iTunes connect中启用了“已为此版本启用游戏中心”,并确保应用程序中的CfBundLeverVersion与此版本匹配。我一这么做,一切都开始运转了

我想你已经做到了:
[GKTurnBasedEventHandler共享Turnbasedeventhandler].delegate=您的\u delegate\u类

如文档所述,当玩家接受推送通知(通常通过解锁手机或通过通知中心)时,就会收到该消息。发送推送通知由Game Center客户端决定,并由GameKit自动完成。你不需要实现GKTurnBasedEventHandlerDelegate来让它们工作,只需要响应玩家接受它们(通过自动返回比赛或其他方式)


我想值得仔细检查一下你的设备的通知设置,看看你的应用程序是否启用了通知中心警报。

汤姆·舒尔茨说的是真的。但有一件事!:您可以使用设备获取通知,但不能使用模拟器。为此,在构建和运行之前,请始终重置模拟器内容和设置。在模拟器上,您可以使用负载匹配方法接收用于测试的内容。希望能有所帮助

嘿,约翰,你明白了吗?我将自己在游戏中实现所有这些东西。希望不会太可怕!请检查我的问题,我不明白为什么我在otehr设备中没有收到通知。可能是与GameCenter或GKTurnBasedEventHandlerDelegate的HandleInvite相关的问题?为我节省了时间。谢谢
- (void)handleTurnEventForMatch:(GKTurnBasedMatch *)match