2011-12-31 57 views
6

我有一个问题需要了解通知。经过几个小时学习如何在iPhone上实现推送通知,它现在到达!如何在用户点击徽章时管理通知

如何管理点击徽章或点击查看警报的用户?用户点击那里会发生什么?

我试图给我发送一些通知,并在跳板上的应用程序图标上的数字增加。在哪里点击可以显示uiview来管理通知到达并显示消息已读和未读?

是否有教程呢?我想将所有消息保存在可用视图中。

回答

34

你想读Handling Local and Remote Notifications

基本上在你的应用程序委托,要实现:

- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions; 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo; 

和处理launchOptions /用户信息的通知数据。

我如何正常处理的数据是:

- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    NSDictionary* userInfo = 
     [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
    if (userInfo) { 
     [self processRemoteNotification:userInfo]; 
    } 
    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 
    return YES; 
} 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 
    [self processRemoteNotification:userInfo]; 
} 

对用户信息的格式记录的The Notification Payload部分。

例如“aps”键会给你另一个NSDictionary,然后查看“alert”键会给你显示的警报信息。此外,您在JSON有效内容中发送的任何自定义数据也将在其中。

NSDictionary *apsInfo = [userInfo objectForKey:@"aps"]; 

NSString *alertMsg = @""; 
NSString *badge = @""; 
NSString *sound = @""; 
NSString *custom = @""; 

if([apsInfo objectForKey:@"alert"] != NULL) 
{ 
    alertMsg = [apsInfo objectForKey:@"alert"]; 
} 


if([apsInfo objectForKey:@"badge"] != NULL) 
{ 
    badge = [apsInfo objectForKey:@"badge"]; 
} 


if([apsInfo objectForKey:@"sound"] != NULL) 
{ 
    sound = [apsInfo objectForKey:@"sound"]; 
} 

if([userInfo objectForKey:@"Custom"] != NULL) 
{ 
    custom = [userInfo objectForKey:@"Custom"]; 
} 
+1

我刚跟在苹果网站上的信息,没有任何问题。你到底有什么问题? – 2011-12-31 00:41:41

+0

理解!!!!感谢你非常非常:) – JackTurky 2011-12-31 01:00:49

+0

更新的答案与你想要的信息。 – 2011-12-31 01:01:36