从iOS应用图标中删除徽章

tha*_*har 54 iphone badge 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];
}
Run Code Online (Sandbox Code Playgroud)

application didFinishLaunchingWithOptions我尝试以这种方式将徽章设置为0:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;
Run Code Online (Sandbox Code Playgroud)

如何清除应用程序图标徽章?

Mar*_*ark 209

如果您的应用再次变为活动状态且仍处于后台,则还应重置徽章计数-applicationDidBecomeActive::

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    application.applicationIconBadgeNumber = 0;
}
Run Code Online (Sandbox Code Playgroud)

如果您的应用仍在后台运行,-application:didFinishLaunchingWithOptions:则不会被调用.

  • 在``-applicationDidBecomeActive:``中重置一次就可以了.因为当调用``-application:didFinishLaunchingWithOptions:``时也会调用此方法.请接受我的回答:) (7认同)

Fab*_*ser 8

可能,-application:didFinishLaunchingWithOptions:没有被调用,因为您的应用程序仍在后台运行.要从后台启动应用程序时删除徽章计数,您还必须重置徽章编号-applicationWillEnterForeground:.


Sou*_*har 5

在 Swift 和 AppDelegate 中

func applicationDidBecomeActive(_ application: UIApplication) {
    application.applicationIconBadgeNumber = 0
}
Run Code Online (Sandbox Code Playgroud)