从iOS应用程序图标中移除徽章
在我试图做的这个应用程序中,我使用推送通知。 这部分工作得很好。 当我发送通知时,我还会将徽章添加到应用图标。 问题是,当我午餐的应用程序,它应该再次消失,但事实并非如此。
-(IBAction)Push{ NSMutableDictionary *data = [NSMutableDictionary dictionary]; [data setObject:@"Numfeud: Troels made a move!" forKey:@"alert"]; [data setObject:[NSNumber numberWithInt:1] forKey:@"badge"]; [data setObject:@"bar" forKey:@"foo"]; [PFPush sendPushDataToChannelInBackground:@"GameChannel2" withData:data]; }
在application didFinishLaunchingWithOptions
我试图设置徽章0这样:
[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
如何清除应用程序图标徽章?
如果您的应用程序再次处于活动状态,并仍处于后台,则应重置-applicationDidBecomeActive:
的徽章计数:
- (void)applicationDidBecomeActive:(UIApplication *)application { application.applicationIconBadgeNumber = 0; }
如果您的应用仍在后台运行,则应用-application:didFinishLaunchingWithOptions:
将不会被调用。
可能,应用程序-application:didFinishLaunchingWithOptions:
没有被调用,因为你的应用程序仍在后台运行。 为了在应用程序从后台启动时删除徽章计数,您必须在-applicationWillEnterForeground:
重置徽章编号。
也许在applicationWillResignActive
(在AppDelegate.m
)调用它:
-(void)applicationWillResignActive:(UIApplication *)application{ [UIApplication sharedApplication].applicationIconBadgeNumber = 0; }
这将帮助你清除badge
如果push
来应用程序正在打开。 用户看到notification
并按下“ Home Button
(一次或两次),即可清除该notification
。 此外,它将清楚如果app
被closed
(用户打开后清除)。
在这里你可以看到这个方法调用的时候。
你也可以使用这个代码。
- (void)applicationDidBecomeActive:(UIApplication *)application { application.applicationIconBadgeNumber = 0; }
或者在特定的ViewController中
- (void)awakeFromNib { [UIApplication sharedApplication].applicationIconBadgeNumber = 0; }