0

ユーザーがチェックインできるさまざまなイベントがあるアプリがあります。ユーザーがイベントにチェックインすると、イベントの 24 時間前にローカル通知が設定され、ユーザーに通知されます。私の質問は、setApplicationIconBadgeNumberアプリの を持っていて、その時点でのバッジ番号に 1 を加えたものに設定していることです。問題は、同時に 2 つのイベントがあるということです。バッジ番号は 1 ではなく 2 である必要があります。バッジ番号を適切に設定するように iOS に指示するにはどうすればよいですか? これはすべてローカル通知であり、特定の時間に発生するため、コード内で追跡するのは困難です...

4

1 に答える 1

0

特にローカル通知では、これがすべて起こっているときにコードが実際に実行される機会がない可能性があるため、コードで追跡するのは難しいことに同意します。特別な「インクリメント バッジ番号」イベントで修正できた API の見落としのようです。

1 つの解決策は次のとおりです。新しい を作成するたびUILocalNotificationに、既存のすべての通知のリストを調べて、それぞれの正しいバッジ番号として何を持っている必要があるかを判断します (たとえば、それぞれの fireDate に基づいて)。

したがって、 を使用して、既存のアプリケーションの配列を取得しますUIApplicationscheduledLocalNotifications必要に応じて並べ替えて、それぞれの正しいバッジ番号を把握し、正しいバッジ番号で各オブジェクトを更新します。(変更された) 配列をscheduledLocalNotificationsプロパティとして設定し直して、更新された値を登録します。

無関係な外部イベントがバッジ カウンターを変更するたびに同じことを行います。きれいではありませんが、信頼できるハックが必要だと思います。

于 2012-11-06T01:29:12.673 に答える