2011-12-31 59 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