プッシュ通知なしでiOSバッジを更新する


86

深夜にアプリバッジを更新し、常に正しいタスク数を表示するToDoアプリをいくつか見ました。彼らはプッシュ通知を使用せずにこれ行います-だから私の質問は:彼らはこれをどのように行うのですか?ローカル通知を使用していますか?使用している場合、デバイスの電源がオフのときに呼び出されますか?私は少し混乱しているので、いくつかの入力をいただければ幸いです。

回答:


137

これを試して

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];

ローカル通知を介してこれを行うには、で値を設定する必要があります applicationIconBadgeNumber

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;// set here the value of badge

1
これはバッジ番号を変更する方法ですが、アプリがバックグラウンドにあるとき、または電話がスリープ状態のときに変更するには、ローカル通知またはスケジュールされたタスクを調べる必要がある場合があります。
jasarien 2011

2
iOS 8.0以降では、アプリケーションは、アイコンバッジを設定する前に、-[UIApplication registerUserNotificationSettings:]を使用してユーザー通知を登録する必要があります。
unom 2016

17

そして、新しくて光沢のあるSwiftを使用しているすべての人のために:

UIApplication.sharedApplication().applicationIconBadgeNumber = someNumber

スウィフト3:

UIApplication.shared.applicationIconBadgeNumber = someNumber

2
迅速な回答を提案するときは、現在非常に動的であるため、カバーしているバージョンを含めることをお勧めします。
Juan Boero 2015

はい、あなたは正しいです; ただし、この場合、構文には変更される可能性のあるものは何もないため(単純な割り当てです)、おそらく必要ありません:)
Jiri Trecak 2015

3
ジリ、後知恵で面白いコメント;-)
ティム

13

iOS 4.0以降、少なくともiOS4.0を実行しているすべてのデバイスでローカル通知を発行できます。見てUILocalNotificationクラス、それはあなたがあなたのアプリケーションを実行しなくても、深夜にバッジを設定することができます。


ええと、iPhoneは電源がオフのときに目覚まし時計を開始することさえできないので、いいえ、バッジは更新されません。ただし、オンに戻すと、バッジを更新する通知が送信されます。
JustSid 2011

わかりました、それは私が知りたかったことです。ありがとう!
fabian789 2011

7

アプリケーションの実行時にコードにUIApplicationapplicationIconBadgeNumberプロパティを設定します。

[UIApplication sharedApplication].applicationIconBadgeNumber = someNumber;

0

Objective Cの場合、以下を使用する必要があります。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber : anyNumber ];            

0

スウィフト5

UIApplication.shared.applicationIconBadgeNumber = someNumber
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.