Могу ли я проверить статус аутентификации Game Center вне моего приложения? - PullRequest
8 голосов
/ 22 декабря 2010

Я хочу знать, подключен ли пользователь, запускающий мое приложение, к GameCenter (через приложение GameCenter или через другое приложение), когда я впервые запускаю свое приложение.

Я обнаружил, что еслиЯ проверяю логическое значение:

[GKLocalPlayer localPlayer].authenticated)

возвращает false.Я думаю, что одна вещь, которая может это исправить, запускается при запуске:

[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error)

Однако, если пользователь не подключен, это вызывает всплывающий игровой центр, который запрашивает существующую учетную запись или создает новую.

Итак, мой вопрос: есть ли способ узнать, что мой пользователь подключил GC за пределами моего приложения, когда мое приложение было отключено, не отображая предупреждение выше, если он не подключен?

Спасибо !!

Ответы [ 2 ]

4 голосов
/ 23 января 2013

Вы можете сделать это на iOS 6.0 или выше:

GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
    localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
        if (viewController == nil && error == nil) {
            NSLog(@"Here, you know that the user has already signed to Game Center, whether in through your app or not.");
        } 
    };
0 голосов
/ 07 июня 2011

Мне кажется, что Game Center аутентифицирует пользователя в каждом отдельном приложении, а не глобально через iOS. Таким образом, вы не можете проверить статус аутентификации пользователя без использования метода authenticateWithCompletionHandler:.

Кстати, я думаю, что вы должны пересмотреть этот механизм пользовательского интерфейса. Это принесет вам пару проблем. Для аутентификации Game Center будет использоваться глобальная учетная запись (прежде всего учетная запись App Store), общая для всех приложений, и вы должны полагаться на Game Center для управления аутентификацией. Предположим, что вы можете делать то, что ищете (и я думаю, что это невозможно), если вы уже вошли в систему через стороннее приложение, вы сможете войти в GC даже в своем; но если вы не вошли в систему за пределами своего приложения, вы не сможете использовать GC в своем приложении.

Это может быть проблемой для вас, потому что, если у пользователя есть действительная учетная запись, и он в настоящее время вышел из App Store из приложения Настройки, он не сможет войти в GC для вашего приложения (так как вы делаете не хочу показывать пользователю лог в оповещении). Вам нужно будет полагаться на сторонние приложения, чтобы включить все функции GC. Таким образом, на этом этапе GC станет бесполезным.

Это действительно то, что вы хотите от своего приложения? Зачем включать GC, если пользователь, вероятно, не сможет эффективно его использовать?

...