Схема URL Game Center - PullRequest
       3

Схема URL Game Center

20 голосов
/ 03 июня 2011

Можно открыть приложение Game Center из собственного приложения, используя:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:"]];

Есть ли способ открыть его на странице для конкретной игры?

Ответы [ 3 ]

26 голосов
/ 03 ноября 2011

Я пробовал много разных комбинаций.Судя по отсутствию такой функции в iBook, отсутствию документации и, как я уверен, вы обнаружили - отсутствию информации в интернете, - я скажу, что кому-то, вероятно, придется либо грубо форсировать URLчтобы выяснить это (если он настроен на переход к отдельным приложениям по URL вообще).Вот некоторые из них, которые я пробовал:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:id350536422"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:us/app/cheese-moon/id350536422"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:games/"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:350536422"]];

ОБНОВЛЕНИЕ

Я просмотрел внутреннюю часть ОС и обнаружил шаблоны разрешения URL для Game Center:

URL resolution patterns for Game Center

Вы должны быть знакомы с регулярными выражениями, чтобы использовать их все.Вот что я напечатал для вас:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:/me/account"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:/me/signout"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:/friends/recommendations"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:/games/recommendations"]];
0 голосов
/ 11 января 2014

Используйте только эту процедуру.

    - (void)showGameCenter
{

GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];

    if (gameCenterController != nil)
    {
        gameCenterController.gameCenterDelegate = self;
        gameCenterController.viewState = GKGameCenterViewControllerStateDefault;       
        [self presentViewController: gameCenterController animated: YES completion:nil];

    }
}
0 голосов
/ 24 октября 2013

В примерах URL, используемых в ответе Циррострата, не хватает нескольких битов.

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter://static.gc.apple.com/me/"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter://static.gc.apple.com/friends/"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter://static.gc.apple.com/games/"]];

Эти URL-адреса работают для меня на iOS 6 и 7. Я предполагаю, что если вы вошли в учетную запись Game Center в песочнице, вам придется использовать sandbox.gc.apple.com. Я пытался перейти на определенную игру или страницу друзей через /games/game/<id>/ и /friends/player/<id>/, но все, что я пытаюсь использовать для идентификации, похоже, не работает. По URL-адресу друзей я перехожу на пустую страницу друзей.

Даже если кто-то это выяснит, потому что это недокументировано, Apple может измениться в любое время в будущем, поэтому я не буду жестко кодировать URL-адрес, подобный этому, в приложение.

...