我正在创建一个实时比赛游戏,但我对如何处理游戏邀请感到困惑?例如,一个设备上的玩家可以邀请他的朋友参加比赛,然后邀请横幅将出现在朋友的设备上。他们可以点击横幅并接受邀请。现在,如果朋友之前运行过该应用程序并安装了以下邀请处理程序(安装在应用程序的第二个视图控制器中),这将正常工作
- (void) installInvitationHandler
{
[GKMatchmaker sharedMatchmaker].inviteHandler = ^(GKInvite *acceptedInvite, NSArray *playersToInvite) {
// Insert game-specific code here to clean up any game in progress.
if (acceptedInvite)
{
if(self.myConnectingVC) return;
else if(self.myMatchmakerVC)
{
[self dismissViewControllerAnimated:YES completion:^{
self.myMatchmakerVC = nil;
GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithInvite:acceptedInvite];
mmvc.matchmakerDelegate = self;
self.myConnectingVC = mmvc;
[self presentViewController:mmvc animated:YES completion:nil];
}];
}
else
{
GKMatchmakerViewController *mmvc = [[GKMatchmakerViewController alloc] initWithInvite:acceptedInvite];
mmvc.matchmakerDelegate = self;
[self presentViewController:mmvc animated:YES completion:nil];
}
}
else if (playersToInvite)
{
[self createMatchWithPlayersToInvite:playersToInvite];
}
};
}
问题是,如果朋友之前从未运行过应用程序,或者朋友在应用程序中的进展还不够远,无法达到installInvitationHandler
方法,我该怎么办? 如果发生这种情况,如果朋友点击邀请横幅,应用程序将打开,但不会接受邀请。