我正在尝试更改正在开发的应用程序的徽章。关闭时,不幸的是,我只收到一条消息而没有更改徽章。如何在应用程序关闭时通过推送更改应用程序徽章
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeBadge];
NSDictionary* userInfo = [launchOptions valueForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];
NSInteger badge = [[apsInfo objectForKey:@"badge"] integerValue];
if([apsInfo objectForKey:@"alert"] != NULL)
{
application.applicationIconBadgeNumber = badge;
}
但是这并没有改变任何东西。我还没有找到任何解决方案。推送通知到达时调用什么方法并关闭应用程序?我还补充说:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
#if !TARGET_IPHONE_SIMULATOR
NSLog(@"remote notification: %@",[userInfo description]);
NSDictionary *apsInfo = [userInfo objectForKey:@"aps"];
NSString *alert = [apsInfo objectForKey:@"alert"];
NSLog(@"Received Push Alert: %@", alert);
NSString *badge = [apsInfo objectForKey:@"badge"];
NSLog(@"Received Push Badge: %@", badge);
application.applicationIconBadgeNumber = [[apsInfo objectForKey:@"badge"] integerValue];
#endif
}
但没有......
你能帮助我吗?
我想知道错误的位置有效负载生成一个通知给我但徽章不会改变必须手动更改吗?到应用程序关闭,这是我的问题。关闭时,消息到达,但徽章保持不变。 – user1319267
我解决了它。APNs当它被发运的徽章数没有被铸造为int。现在一切正常。 – user1319267