一旦用户选择了其中一个推送通知,我想清除我的应用程序的所有推送通知。
我在这里看过其他线程,说这在iOS中是不可能的。 但是我从app store下载了一个应用程序,它做了同样的事情。
答案 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;
}
}