【问题标题】:Set the application badge number in ios 9在 ios 9 中设置应用程序徽章编号
【发布时间】:2016-01-25 04:48:16
【问题描述】:

我用过

[UIApplication sharedApplication].applicationIconBadgeNumber = 5;

用于设置应用程序徽章编号。它不能单独在 ios 9 中运行。

谁能说明原因?

我试过了,

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:5];

【问题讨论】:

  • 你在哪里/用什么方法试过这个
  • @Anbu.Karthik,我在项目的几个地方都使用了它。它在 ios 8 中运行良好。
  • @Anbu.Karthik,我需要在其他一些视图控制器中更改不在 appdelegate.m 中的徽章编号。

标签: ios ios9 badge


【解决方案1】:

嗨,你需要像这样注册 UIUserNotificationSettings

UIUserNotificationSettings* notificationSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];

[[UIApplication sharedApplication] registerUserNotificationSettings:notificationSettings];

[UIApplication sharedApplication].applicationIconBadgeNumber = 1;

【讨论】:

  • 没有通知,我将徽章编号设置为我的应用程序图标。所以无需注册通知设置
  • [[UIApplication sharedApplication] setApplicationIconBadgeNumber:5];在 didFinishLaunchingWithOptions 中使用它可以正常工作
  • 是的,我已经试过了。无论设置什么,我都有徽章图标编号。
  • 我刚刚创建了一个示例应用程序,并将该行粘贴到完成启动,它没有在应用程序图标中显示任何徽章计数,请检查此screenshot
【解决方案2】:

在 iOS 中注册通知类型

在 iOS 8 及更高版本中,使用本地或远程通知的应用 必须注册他们打算发送的通知类型。这 系统然后赋予用户限制类型的能力 您的应用显示的通知。系统没有徽章图标, 显示警报消息,或播放警报声音(如果有) 未为您的应用启用通知类型,即使它们已启用 在通知有效负载中指定。 链接:Docs

@property(nonatomic) NSInteger applicationIconBadgeNumber; //设置为0隐藏。默认为 0。在 iOS 8.0 及更高版本中,您的应用程序必须使用 -[UIApplication registerUserNotificationSettings:] 注册用户通知,然后才能设置图标徽章。

所以我认为您必须为更改编号通知注册徽章。

【讨论】:

  • 感谢您的回答,已注册并尝试过,但没有成功。
  • 我的应用程序已经有推送通知功能,它在 ios 8 中运行良好,问题在 ios 9 中。
  • 我只是用 iOS 9 测试。我注册:UIUserNotificationType types = UIUserNotificationTypeBadge;UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil]; ~ [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];~ 我设置:[[UIApplication sharedApplication] setApplicationIconBadgeNumber:5];
  • 现在我也明白了。好的,如果想在项目的其他地方设置徽章编号,我该怎么办?
  • 只需致电:[[UIApplication sharedApplication] setApplicationIconBadgeNumber:5]; 将 5 更改为您想要的号码。
【解决方案3】:

它的工作原理是这样的:

[UIApplication sharedApplication].applicationIconBadgeNumber = 10;

我在 Xcode 7.2、iOS 9.2、iPhone 6s Plus 中尝试过。

【讨论】:

    【解决方案4】:

    在你的Appdelegate.m文件中设置didFinishLaunching方法...

    application.applicationIconBadgeNumber = 5.

    并将您的当前日期更改为 2 天后并重新启动您的 iPhone.. 并再次测试。它应该可以正常工作。

    【讨论】:

    • 从 iOS 8 开始,如果不询问用户更改应用图标徽章的权限,这将不再起作用。
    猜你喜欢
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多