2011-10-28 9 views
11

私は新しいターンベースのiOS5 APIを使って、ターンベースのiOSゲームに取り組んでいます。GameKit Turn-Basedマッチの通知を受け取るにはどうすればよいですか?

このために実装する必要がある代理プロトコルの1つは、GKTurnBasedEventHandlerDelegateです。実装するメソッドの1つがhandleTurnEventForMatchです。これは、この方法でアップルのドキュメントからである: ターンベースの試合で行動するローカルプレイヤーのターンであるデリゲートに送信され

handleTurnEventForMatch

- (void)handleTurnEventForMatch:(GKTurnBasedMatch *)match 

パラメータ

マッチ - マッチの現在の状態を含むマッチオブジェクト。

ディスカッション

デリゲートがこのメッセージを受信すると、プレイヤーはすでに進行中の試合のため プッシュ通知を受け入れました。ゲームは が実行していたタスクを終了し、一致オブジェクト に一致する情報に切り替える必要があります。

ゲームのほとんどが動作しています。私は上記の方法で受け取った動きの通知を受け取ります。 アプリアイコンのバッジも正常に更新されています。

しかし、私はターンイベントが入ったときに他のシステム通知を取得していません。通知センターなどに何も表示されません。これを有効にするにはGameKitの外で何かする必要がありますか? handleTurnEventForMatchを取得したときに手動でローカル通知を送信する必要がありますか?ドキュメントは、「あなたのデリゲートがこのメッセージを受け取ったとき、プレイヤーはすでに進行中の試合についてプッシュ通知を受け入れました」と述べているからではありません。

だから、これはプレイヤーがこのメソッドが呼び出されますし、プッシュ通知をクリックしたことを意味するようだ(もちろん、彼らが表示されることはありませんので、私は持っていない!)

私はプッシュを有効にするために行うには何が必要ですターンベースのイベントのための私のアプリの通知?上記の方法を受け取ったときに実際にローカル通知を送信する必要がありますか(これは、上記の文書の言葉を考えれば、意図と矛盾するようです)。

+0

こんにちはジョン、これはまだ分かっていますか?私は自分自身でゲームのすべてのこれらのものを実装しようとしています。それはあまりにもひどいではないことを願っています! – livingtech

+0

私の質問をチェックするhttp://stackoverflow.com/questions/16266089/gkmatchrequest-invitation-not-showing-in-other-device、なぜ私はotehrデバイスで通知を取得していない理解していない。 handleInviteFromGameCenterまたはGKTurnBasedEventHandlerDelegateに関連するissuですか? – Aitul

答えて

14

私はこのを通じて、一週間後、または、私はこれらの重要なことを発見した机のに対して私の頭を強打するように、自分の道を戦って終了:

(1)シミュレータは、これらのターンの通知を受信しません。この作業をしたら、2つのデバイス間で正常に動作します。シミュレータはデバイスと対戦してイベントを送信しますが、受信しません。ですから、あなたがこのデバイスをテストするために1つのデバイスとシミュレータを使用しようとしているなら、幸運です。 2つのデバイスを使用します。

(2)iTunes Connectで「このバージョンのゲームセンターを有効にする」をオンにして、アプリのCFBundleVersionがこのバージョンと一致することを確認してください。私がこれをやろうとすると、すべてが働き始めた。

すでに完了していることを前提としています。 [GKTurnBasedEventHandler sharedTurnBasedEventHandler] .delegate = YOUR_DELEGATE_CLASS;

+0

私は時間を節約できました。ありがとう – Peacemoon

-1

iTunesの接続/プロビジョニングポータルでプッシュ通知を設定しましたか?プッシュを有効にするには、実際に特別な証明書が必要です。

私は証明書をセットアップするまで、あなたと同じ問題を抱えていました。

0

ドキュメントには、プレイヤーがプッシュ通知を受け入れると(通常は電話機のロックを解除するか、通知センター経由で)そのメッセージが受信されると記載されています。プッシュ通知の送信は、Game Centerのクライアント側で決定され、GameKitによって自動的に実行されます。 GKTurnBasedEventHandlerDelegateを実装する必要はありません.GKTurnBasedEventHandlerDelegateを使用するには、プレーヤーが自動的にそのマッチに戻ります。

あなたのデバイスの通知設定で、通知センター通知が有効になっていることを確認するには、デバイスの通知設定を2回チェックする価値があると思います。

1

トム・シュルツは真実を言った。しかし、一つ!あなたのデバイスでは通知を受け取ることができますが、シミュレータでは通知を受け取ることはできません。これを行うには、ビルドと実行の前に必ずシミュレータの内容と設定をリセットしてください。また、シミュレータでは、テストのために何かを受け取るためにload matchesメソッドを使用することができます。欲しいのですが。

関連する問題