选择一个后,清除通知中心的推送通知

时间:2013-08-05 12:08:53

标签: ios push-notification

一旦用户选择了其中一个推送通知,我想清除我的应用程序的所有推送通知。

我在这里看过其他线程,说这在iOS中是不可能的。 但是我从app store下载了一个应用程序,它做了同样的事情。

2 个答案:

答案 0 :(得分:28)

如果是本地通知,那么要删除徽章图标,你必须像这样做

UILocalNotification *localNotification = [[UILocalNotification alloc] init];
localNotification.applicationIconBadgeNumber = 1;

如果是推送通知,您可以通过以下代码进行操作

[UIApplication sharedApplication].applicationIconBadgeNumber=0;

您可以随意调用这些方法。例如,如果您想在启动应用程序时清除通知,请将其写入

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 

如果您的应用不使用您必须先设置的徽章编号,请将其重置为从通知中心删除。

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:1];
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

答案 1 :(得分:2)

您需要做的就是

application.applicationIconBadgeNumber = 0;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

修改

如果您没有关闭应用,只是将其发送到后台。然后在下面的函数中添加它。

  - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    if ( application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground  )
    {
         //opened from a push notification when the app was on background
         application.applicationIconBadgeNumber = 0;
    }
}