3

通知センターからの通知をクリアすることを実験しています (バッジ番号を削除する API がないため、回避策にはバッジ番号を 0 に設定することが含まれます)。

ただし、実験中に setApplicationIconBadgeNumber を取得してバッジ番号に影響を与えることができないことに気付きました。

たとえば、私が持っている場合:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{    
      [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 5];

(そして setApplicationIconBadgeNumber は他の場所では呼び出されていません)

その場合、数字を含むものは言うまでもなく、アイコンのバッジはありません。

(通知はバッジ番号を設定していません。おそらく setApplicationIconBadgeNumber: の前にバッジ番号を設定する必要があります。何らかの効果があります。誰かがそれを確認または拒否できますか?)

更新:、コンソールでこれに気づきました。おそらく関連しています:

May 24 16:12:49 unknown installd[138] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile
May 24 16:12:49 unknown SpringBoard[51] <Warning>: Killing com.mycompany.xxx for termination assertion
May 24 16:12:50 unknown installd[138] <Error>: entitlement 'aps-environment' has value not permitted by a provisioning profile
May 24 16:12:50 unknown SpringBoard[51] <Warning>: Reloading application state for 'com.mycompany.xxx' as its modification date or path has changed
May 24 16:12:50 unknown SpringBoard[51] <Warning>: Reloading and rendering all application icons.

最後の行は関連しているように聞こえます。これは発生したばかりで、理由はわかりません。プロファイルなどを変更していません。プロファイルは最新であり、Xcode で有効です。これについては別の質問を投稿します

4

4 に答える 4

13

iOS8 以降で動作しない問題がある場合はsetApplicationIconBadgeNumber、iOS8 以降のローカル通知についてユーザーの許可を求める必要があるためです。

UIUserNotificationType userNotificationTypes = UIUserNotificationTypeBadge;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes categories:nil];
[application registerUserNotificationSettings:settings];
于 2015-09-04T20:18:19.863 に答える
2

バッジ番号を 1 つずつ増減してみてください。

[UIApplication sharedApplication].applicationIconBadgeNumber++;    

ただし、あなたの問題は、プログラムがこのコード行に到達する時期の問題だと思います。

お役に立てれば。

于 2012-05-24T22:44:17.273 に答える
0

数値> 0でなければならないことがわかりました。負の数値では機能しませんでした。

于 2012-12-10T02:47:23.080 に答える