Я создаю матчи в реальном времени и не понимаю, как поступить с приглашениями на игру? Например, игрок на одном устройстве может пригласить своих друзей на матч, и тогда на устройствах друзей появится баннер с приглашением. Они могут нажать на баннер и принять приглашение. Теперь это отлично работает, если друг запускал приложение раньше и установил указанный ниже обработчик приглашений (установлен во втором контроллере представления приложения).
- (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
? Если это произойдет, если друг нажмет на баннере приглашения приложение откроется, но не примет приглашение.