0

ゲームの通知側で作業していますが、iOS がローカル通知を処理する方法に問題があります。

デリゲートのドキュメントにはapplication:didReceiveLocalNotification、次のように記載されています。

If the application is running in the foreground, there is no alert, badging, or sound; instead, the application:didReceiveLocalNotification: method is called if the delegate implements it.

ただし、ローカル通知がポップアップするはずで、アプリケーションがフォアグラウンドで実行されている場合、最初にそのデリゲートを起動し (空です)、とにかくアラートを表示します。

アプリケーションがフォアグラウンドで実行されているときに、ローカル通知のみを処理する方法を知りたいです。それは可能ですか?

これが必要な理由の簡単な例: プレーヤーが建物を開始すると、建物が完成したときに警告するローカル通知が作成されます (最大 6 時間)。ただし、この通知がポップアップするはずのときにユーザーがゲームに参加している場合は、建物が完成したことをすでに確認できるため、表示したくありません。

ありがとうございました

4

2 に答える 2

3
application:didReceiveLocalNotification:

通知をアラート、バッジ、またはサウンドとして表示するかどうかを処理する必要があります。したがって、アプリがバックグラウンドにある場合、ポップアップ アラート/バッジ/サウンドによって、ユーザーにメッセージが通知されます (この場合、建物は完成しています)。ただし、デリゲート メソッドでこれを無視することを選択できます。

編集:メソッドが起動され、アプリケーションがアクティブになったら、通知を破棄できます

[[UIApplication sharedApplication] cancelLocalNotification:myNotification];

フォアグラウンドでポップアップするというあなたの仮定は間違っています。

于 2012-11-07T10:41:36.020 に答える
1

呼び出すcancelAllLocalNotifications:と、通知がすでに発生している場合でも、現在表示されているアラートが閉じられます。

于 2012-11-07T10:38:29.217 に答える