一旦用户选择其中一个推送通知,我想清除我的应用程序的所有推送通知。
我在这里看到其他线程说这在 iOS 中是不可能的。但我从应用商店下载了一个应用程序,它做同样的事情。
一旦用户选择其中一个推送通知,我想清除我的应用程序的所有推送通知。
我在这里看到其他线程说这在 iOS 中是不可能的。但我从应用商店下载了一个应用程序,它做同样的事情。
如果是本地通知,则要删除徽章图标,您必须这样做
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];
你需要做的就是
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;
}
}