2012-12-11 2 views
1

안녕하세요, Apple APNS를 사용하여 RemoteNotification을 보냅니다. 내가 발견 된 문제는 다음과 같습니다 모든RemoteNotification을받을 때 다른 페이지로 건너 뛰고 취소 위치

첫째, 내 코드를 다른 페이지가 아닌 메인 페이지 (첫 페이지) RemoteNotification를 수신 한 후 이동하려는 :

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

    NSLog(@"remote notification: %@",[userInfo description]); 
    NSDictionary *apsInfo = [userInfo objectForKey:@"aps"]; 

    NSString *alert = [apsInfo objectForKey:@"alert"]; 
    NSLog(@"Received Push Alert: %@", alert); 
    NSString *sound = [apsInfo objectForKey:@"sound"]; 
    NSLog(@"Received Push Sound: %@", sound); 
    NSString *badge = [apsInfo objectForKey:@"badge"]; 
    NSLog(@"Received Push Badge: %@", badge); 

    application.applicationIconBadgeNumber = [[apsInfo objectForKey:@"badge"] integerValue]; 


    if ([userInfo objectForKey:@"type"]) 
    { 

     NSString *nsType = [userInfo objectForKey:@"type"]; 
     NSLog(@"Received Push nsType: %@", nsType); 
     if([[userInfo objectForKey:@"type"] intValue]==1){//chat 
      [self JumpChatHistoryView]; 


     }else{ 
      [self JumpMessageDetailView]; 
     } 
    } 
    application.applicationIconBadgeNumber = 0; 
} 

내 애플 입력 배경을하고있다 시스템에 의해 살해되지, RemoteNotification을받을 때 그것을 클릭, 내 코드는 괜찮습니다, 그것은 다른보기를 이동할 수 있습니다. 하지만 내 응용 프로그램을 죽일 때, 내가 RemoteNotification을받을 때, 나는 그것을 클릭, 다른보기를 건너 뛰지 않고, 그것은 단지 그것을 해결하는 방법, 기본보기를 입력하십시오.

또한 LocalNotification을 취소 할 때 [[UIApplication sharedApplication] cancelLocalNotification:notification];을 사용할 수 있지만 RemoteNotification에서는 동일한 방법을 찾을 수 없습니다. 내가 어떻게 해?

답변

0

:

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions add 


NSDictionary *userInfo =[launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey]; 
if ([userInfo objectForKey:@"type"]) 
{ 

    NSString *nsType = [userInfo objectForKey:@"type"]; 
    NSLog(@"Received Push nsType: %@", nsType); 
    if([[userInfo objectForKey:@"type"] intValue]==1){//chat 
     [self JumpChatHistoryView]; 


    }else{ 
     [self JumpMessageDetailView]; 
    } 
} 

질문 2, 언젠가 그 자체를 취소 할 수 있습니다를, 가끔

1

당신은이 방법에 AppDelegate.m 파일의 코드를 작성해야한다 : 내가 내 질문에 한 대답 할 수

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 
      NSLog(@"%@", userInfo); 
      NSString *notiText = [[userInfo valueForKey:@"aps"] valueForKey:@"alert"]; 
      [self JumpChatHistoryView]; 
} 
+0

당신도 내 코드를 볼 수 있습니다. – pengwang

관련 문제