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