我正在嘗試更改正在開發的應用程序的徽章。關閉時,不幸的是,我只收到一條消息而沒有更改徽章。如何在應用程序關閉時通過推送更改應用程序徽章
- (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