0

iOS 10에서 푸시 알림을 구현하고 있습니다. 모든 것이 잘 작동합니다.앱이 배경에서 푸시 알림을 받거나 IOS에서 종료되었을 때 NSNotificationCenter에서 알림을들을 수 없습니다.

하지만 APP가 밀어 넣기 알림을 받았을 때 API를 눌러야합니다 (활성 상태 일뿐만 아니라 백그라운드/종료 됨).

- (void)userNotificationCenter:(UNUserNotificationCenter *)center 
     willPresentNotification:(UNNotification *)notification 
     withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler { 
    NSDictionary *userInfo = notification.request.content.userInfo; 
    NSLog(@"Message ID: %@", userInfo[@"gcm.message_id"]); 

    NSLog(@"%@", userInfo); 

    if([UIApplication sharedApplication].applicationState == UIApplicationStateInactive) 
    { 
     NSLog(@"INACTIVE"); 
     completionHandler(UNNotificationPresentationOptionAlert); 
    } 
    else if([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) 
    { 
     NSLog(@"BACKGROUND"); 
     completionHandler(UNNotificationPresentationOptionAlert); 
    } 
    else 
    { 
     NSLog(@"FOREGROUND"); 
     completionHandler(UNNotificationPresentationOptionAlert); 
    } 

    [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadTheTable" object:nil]; 

} 

내가 노력이

- (void)viewDidLoad { 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadTable:) name:@"reloadTheTable" object:nil]; 
} 

- (void)reloadTable:(NSNotification *)notification 
{ 
// Calling API here 
} 

이 같은 ViewController.m이 알림을 듣고있어 : 응용 프로그램이 같은 푸시 알림을 받았을 때 나는 알림을 청취 NSNotificationCenter을 사용하고이를 위해

앱이 포 그라운드에서 실행 중일 때 좋습니다. 하지만 배경이 아니고 상태를 종료합니다.

나에게 구현해야하는 실수가 있습니까?

+0

내 대답은 지금 나를 위해 확인하지만 응용 프로그램이 배경 – user3182143

답변

2

아이폰 OS 10에서, 우리는 UserNotifications 프레임 워크를 추가하고 우리는 포 그라운드 상태를 들어

#import <UserNotifications/UserNotifications.h> 
@interface AppDelegate : UIResponder <UIApplicationDelegate,UNUserNotificationCenterDelegate> 

appDelegate.h에서 일 이하로 할 필요가 그래서 일단

을 위임해야한다

- (void)userNotificationCenter:(UNUserNotificationCenter *)center 
willPresentNotification:(UNNotification *)notification 
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler 
{ 
    NSLog(@"Handle push from foreground"); 
    // custom code to handle push while app is in the foreground 
    NSLog(@"%@", notification.request.content.userInfo); 
} 

이것은 BACKGROUND 상태입니다.

그래서 여기 당신은 알림을 추가 할 필요가

- (void)userNotificationCenter:(UNUserNotificationCenter *)center 
didReceiveNotificationResponse:(UNNotificationResponse *)response 
withCompletionHandler:(void (^)())completionHandler 
{ 
    NSLog(@"Handle push from background or closed"); 
// if you set a member variable in didReceiveRemoteNotification, you will know if this is from closed or background 
    NSLog(@"%@", response.notification.request.content.userInfo); 

    //Adding notification here 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadTheTable" object:nil]; 
} 

didReciveRemoteNotificationNotCalled in iOS 10

+0

그것을 확인하시기 바랍니다 업데이트 지금 확인해. 일단 작동하면 알려줘. – Himanth

+0

에있을 때 다른 메소드를 호출 할 수 없습니다 – user3182143

+0

작동 여부 – user3182143