图标徽章未出现在 IOS 10 模拟器中

icon badge not appear in IOS 10 simulator

我希望在单击应设置应用程序图标气泡编号的按钮后看到气泡图标徽章编号 - 但是 - 在按下主页按钮后我没有在图标中看到任何编号的气泡。我的问题:图标徽章没有出现在 ios 模拟器中吗?

- (IBAction)btn1_click:(id)sender {
        [[UIApplication sharedApplication] setApplicationIconBadgeNumber:4];
    }

不完全直观,但您的应用必须首先获得使用 UNUserNotificationCenter requestAuthorizationWithOptions:completionHandler:

处理通知的权限
// import with *one of*...
#import <UserNotifications/UserNotifications.h>
@import UserNotifications;

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center requestAuthorizationWithOptions:UNAuthorizationOptionBadge completionHandler:^(BOOL granted, NSError * _Nullable error) {
    if (granted) {
        [UIApplication sharedApplication].applicationIconBadgeNumber = 4;
    }
}];

徽章是一种用户交互——与通知相关联——必须获得授权。

您还应该在主线程上设置徽章 - 我在上面的代码中收到警告。

这适用于 Swift:

private func badgeTest() {
  UNUserNotificationCenter.current().requestAuthorization(options: .badge) { (granted, error) in
    if granted {
      DispatchQueue.main.async {
        UIApplication.shared.applicationIconBadgeNumber = 4
      }
    }
  }