Khi sử dụng authenticateHandler trong iOS 6, trung tâm trò chơi sẽ không hiển thị chế độ xem đăng nhập nếu người dùng hủy bỏ. Tôi nhận ra trung tâm trò chơi sẽ tự động khóa một ứng dụng sau 3 lần hủy, nhưng tôi chỉ nói về 2 lần. Nếu họ hủy đăng nhập, họ phải rời khỏi ứng dụng và quay lại trước khi trung tâm trò chơi sẽ hiển thị thông tin đăng nhập ngay cả thông qua authenticateHandler sẽ được đặt lại. Bất kỳ ý tưởng về cách xử lý trường hợp này trong iOS 6?Trung tâm trò chơi iOS 6 authenticateHandler không thể đăng nhập sau khi hủy
Nó hoạt động tốt khi sử dụng phương pháp authenticateWithCompletionHandler cũ:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0
GKLocalPlayer.localPlayer.authenticateHandler = authenticateLocalPlayerCompleteExtended;
#else
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:authenticateLocalPlayerComplete];
#endif
Lý do này là quan trọng đối với ứng dụng của tôi là nó đòi hỏi Game Center cho đa người chơi. Ứng dụng cố gắng xác thực với trung tâm trò chơi khi khởi chạy, nhưng nếu người dùng hủy chúng tôi không yêu cầu họ khởi chạy lại để họ không bị nagged. Những gì chúng tôi làm là hiển thị nút Đăng nhập Trung tâm trò chơi nếu họ không đăng nhập khi họ chọn nhiều người chơi. Nút đăng nhập buộc đăng nhập vào trung tâm trò chơi bằng cách gọi authenticateWithCompletionHandler (và bây giờ bằng cách đặt lại GKLocalPlayer.localPlayer.authenticateHandler).
Có vẻ như bạn đang thực hiện việc này, nhưng gọi [[GKLocalPlayer localPlayer] authenticateWithCompletionHandler: nil] sẽ khiến cho authenticateHandler được gọi lại bằng trình điều khiển chế độ xem xác thực. Phương pháp này không được chấp nhận mặc dù trong iOS6. – Greg
Tôi đang sử dụng cuộc gọi được khấu hao để làm việc này nhưng tôi đang tìm cách "đúng" để thực hiện việc này mà không cần sử dụng các cuộc gọi không được chấp nhận. Tôi đã thử thiết lập GKLocalPlayer.localPlayer.authenticateHandler mới thành nil và sau đó quay lại trình xử lý của tôi để xem nó có hoạt động hay không, và có một ngoại lệ cố gắng đặt nó thành không.Tôi đã không thử cài đặt nó cho một trình xử lý khác để xem điều đó có kích hoạt đăng nhập không (chỉ dường như thực sự bị hack) –
Tôi đã thử chuyển trình xử lý sang trình xử lý khác và điều đó cũng không kích hoạt hộp thoại đăng nhập mới . Tôi đăng trên diễn đàn nhà phát triển để xem có ai có lời khuyên nào không và sẽ đăng lại ở đây nếu tôi nghe thấy gì. https://devforums.apple.com/message/744983 – Greg