重新安装应用程序时如何清除通知徽章计数

时间:2015-10-15 05:23:37

标签: ios apple-push-notifications badge

我已经为我的iOS应用集成了苹果推送通知。我的问题是当我重新安装应用程序时,甚至在登录应用程序之前就会显示之前的通知徽章计数。我怎么解决这个问题?请帮帮我。

2 个答案:

答案 0 :(得分:2)

针对iOS 7和iOS 8以及iOS 9进行了更新,来自Apple的文档:

  

在iOS 7及更高版本中,第一次启用推送的应用注册   推送通知,iOS会询问用户是否希望收到   该应用的通知。一旦用户响应此警报   除非设备已恢复或应用程序已恢复,否则不会再次显示   已卸载至少一天。

     

如果您想模拟首次运行的应用,可以离开   该应用程序已卸载一天。没有你可以实现后者   实际上是按照以下步骤等待一天:

     

从设备中删除您的应用。完全关闭设备   把它重新打开。转到设置>一般>日期&时间和设定   提前一天或更长时间。再次完全关闭设备   把它重新打开。

对于iOS 5和iOS6:

  

通过还原设备重置推送通知权限警报   来自备份(r.11450187)。以下是执行此操作的步骤   有效地:

     

使用Xcode Organizer在设备上安装您的应用。关键是   首次安装应用程序而不运行它。使用iTunes   备份设备。运行应用程序。推送通知权限   将提出警报。如果要重置推送通知   权限警报,从您创建的备份中还原设备   第一步。

更多详情,请参阅此链接http://developer.apple.com/library/ios/#technotes/tn2265/_index.html

答案 1 :(得分:1)

您是否尝试过多任务菜单中的应用程序并再次启动它?,请在此处调用

- (void)applicationDidBecomeActive:(UIApplication *)application
{
application.applicationIconBadgeNumber = 0;
}

否则

它只会在启动应用程序时被清除。

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

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

return YES;
}

选择-2

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if (launchOptions != nil)
    {
        NSDictionary* dict = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
        if (dict != nil)
        {
            NSLog(@"Launched with APNS: %@", dictionary);

            [self clearAPNSNotifications];
        }
    }

    return YES;
}

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{    
    NSLog(@"Received APNS : %@", userInfo);
    [self clearAPNSNotifications];
}

 - (void) clearAPNSNotifications {
[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
}