2011-10-28 1 views
11

새로운 회전 기반 iOS5 API를 사용하여 차례 기반 iOS 게임을 진행 중입니다.GameKit Turn-Based 매치에 대한 알림은 어떻게 받습니까?

구현하기 위해 구현해야하는 위임 프로토콜 중 하나는 GKTurnBasedEventHandlerDelegate입니다. 구현할 메소드 중 하나는 handleTurnEventForMatch입니다. 이이 방법에 대한 애플의 문서에서이다 : 턴 기반 경기에서 행동하는 로컬 플레이어의 턴 인 대리인에게 보낸

handleTurnEventForMatch

.

- (void)handleTurnEventForMatch:(GKTurnBasedMatch *)match 

매개 변수

경기 - 경기의 현재 상태를 포함하는 일치하는 객체입니다.

토론

대리인이 메시지를 수신, 플레이어는 이미 진행중인 경기에 대한 푸시 알림을 수락했습니다. 게임은 수행중인 작업을 모두 으로 끝내고 일치 항목으로 제공되는 일치 정보 으로 전환해야합니다.

대부분의 게임이 작동 중입니다. 위의 방법을 통해받은 이동 알림을받습니다. 앱 아이콘의 배지도 성공적으로 업데이트됩니다.

그러나 회전 이벤트가 들어올 때 다른 시스템 알림이 표시되지 않습니다. 알림 센터에 아무것도 나타나지 않습니다.이 기능을 사용하려면 GameKit 외부에서해야합니까? handleTurnEventForMatch를 얻을 때 로컬 알림을 수동으로 보내야합니까? 문서는 "위임자가이 메시지를 받으면 플레이어가 이미 진행중인 항목에 대한 푸시 알림을 수락했습니다."

그래서 이것은 플레이어가이 방법은 전화를받을 수있는 푸시 알림을 클릭 것을 암시하는 것 같다 (그러나 물론 그들은 표시되지 않습니다, 그래서하지 않은!) 내가 푸시를 사용하려면 어떻게해야합니까 무엇

턴 기반 이벤트에 대한 내 앱의 알림? 위의 방법을 받으면 실제로 현지 알림을 보내야합니까 (위의 문서의 내용에 따라 의도와 모순되는 것 같습니다).

+0

안녕하세요, John, 이걸 아직 알아 냈습니까? 나는이 모든 것을 게임에서 직접 구현하려고하고있다. 너무 끔찍하지 않기를 바랍니다! – livingtech

+0

Plz 내 질문을 확인 http://stackoverflow.com/questions/16266089/gkmatchrequest-invitation-not-showing-in-other-device, 내가 왜 otehr 장치에서 알림을 받고 있지 이해가 안돼. handleInviteFromGameCenter 또는 GKTurnBasedEventHandlerDelegate와 관련된 issu 일 수 있습니다. ?? – Aitul

답변

14

난 그냥이를 통해 내 방식대로 싸움을 완료하고, 일주일 후 또는 책상에 내 머리를 두드리는의 그래서 나는이 중요한 것을 발견 :

(1) 시뮬레이터는 이러한 알림을 돌려받을하지 않습니다. 이 작업을 완료하면 두 장치간에 잘 작동합니다. 시뮬레이터는 장치 대 재생하면 이벤트를 보내지 만 수신하지는 않습니다.따라서 하나의 장치와 시뮬레이터를 사용하여 이것을 테스트하려고한다면 행운을 빈다. 두 개의 장치를 사용하십시오.

(2) iTunes 연결에서 "이 버전에 대한 게임 센터 사용 설정"을 사용 설정하고 앱의 CFBundleVersion이이 버전과 일치하는지 확인하십시오. 내가 이것을 한 것처럼 모든 것이 작동하기 시작했다.

이미 완료했다고 가정합니다. [GKTurnBasedEventHandler sharedTurnBasedEventHandler] .delegate = YOUR_DELEGATE_CLASS;

+0

은 나에게 시간을 절약 해 주었다. 감사 – Peacemoon

-1

iTunes 연결/프로비저닝 포털에서 푸시 알림을 설정 했습니까? 푸시를 사용하려면 실제로 특수 인증서가 필요합니다.

인증서를 설정하기 전까지 동일한 문제가있었습니다.

0

설명서에 따르면 플레이어가 푸시 알림 (일반적으로 전화 잠금을 해제하거나 알림 센터를 통해)을 수락하면 해당 메시지가 수신됩니다. 푸시 알림 보내기는 Game Center 클라이언트 측에서 결정되며 GameKit에서 자동으로 수행됩니다. GKTurnBasedEventHandlerDelegate를 구현할 필요가 없습니다. 플레이어가 게임을 수락 할 때만 응답합니다 (자동으로 해당 경기로 돌아가는 등).

기기의 알림 설정에서 알림 센터 알림을 사용하도록 설정했는지 확인하는 것이 좋습니다.

1

톰 슐츠는 사실이라고 말했습니다. 그러나 한 가지! : 장치로 알림을받을 수는 있지만 시뮬레이터에서는 알림을받을 수 없습니다. 이렇게하려면 빌드 및 실행 전에 항상 시뮬레이터 내용 및 설정을 재설정하십시오. 그리고 시뮬레이터에서 load matches 메서드를 사용하여 테스트를 위해 무언가를받을 수 있습니다. 도움이 되었으면 좋겠어요