如何在iOS中清除推送通知徽章数量?

一旦启动应用程序,我想清除推送通知的徽章计数。不清楚在哪里设置下面的代码。请简要说明清除徽章计数。

[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 

你应该设置这个[UIApplication sharedApplication].applicationIconBadgeNumber = 0; 在这些AppDelegate方法中,如果应用程序启动并发送到后台,则启动应用程序didFinishLaunchingWithOptions方法将不会被调用,所以使用这些方法

 - (void)applicationWillEnterForeground:(UIApplication *)application - (void)applicationDidBecomeActive:(UIApplication *)application 

对于Swift 3+

 - func applicationWillEnterForeground(_ application: UIApplication) - func applicationDidBecomeActive(_ application: UIApplication) 

你可以在代码的任何地方设置代码..没关系。 但一般来说,保存在UIApplicationDidFinishLaunching

那么,更好的方法是做一个function,减去徽章号码,然后让UIButton让用户清除徽章。 在默认邮件应用程序中,如果您阅读了一封电子邮件,徽章将从图标中减去一个。 你不应该在启动或恢复时将其设置为0,这是没有意义的,并使应用程序看起来很糟糕。 当用户与该事件交互时,减去它是最好的方法。 让你的应用程序更专业,如果你只是重新启动应用程序启动谁知道什么是bedges的意思,也可以不使用它。

在迅速3 +

在你的AppDelegate.Swift中 ,当你的应用程序主动清除所有如下所示。

 func applicationDidBecomeActive(_ application: UIApplication) { UIApplication.shared.applicationIconBadgeNumber = 0 }