2011-12-31 3 views
6

알림에 대해 질문 할 질문이 있습니다. iPhone에서 푸시 알림을 구현하는 방법을 배우려면 몇 시간 후, 이제 도착합니다!사용자가 배지를 클릭 할 때 알림을 관리하는 방법

경고가 표시되면 배지를 클릭하거나보기를 클릭하는 사용자를 어떻게 관리합니까? 사용자가 거기를 클릭하면 어떻게됩니까?

스프링 보드의 응용 프로그램 아이콘에 알림과 숫자를 보내려고했습니다. 어떤 방법으로 거기를 클릭하면 도착한 알림을 관리하고 읽기 및 읽지 않은 메시지를 표시 할 수있는 uiview를 표시 할 수 있습니까?

튜토리얼이 있습니까? 나는 모든 메시지를 uitableview 안에 저장하고 싶다.

답변

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

사과의 사이트에서 정보를 추적 한 결과 아무런 문제가 없었습니다. 정확히 당신에게 문제가 있습니까? –

+0

이해! 고맙습니다. 아주 많이. :) – JackTurky

+0

원하는 정보로 답변이 업데이트되었습니다. –

관련 문제