我在iOS 10中實施推送通知。一切正常。當應用程序收到來自後臺的推送通知或在iOS中終止時,無法收聽來自NSNotificationCenter的通知
但是,當APP收到推送通知時(不僅在活動狀態,而且在後臺/終止),我需要點擊API。
對於這個我使用NSNotificationCenter
聽通知,當應用程序收到這樣的推送通知:
- (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];
}
而且我聽這個通知在ViewController.m
這樣
- (void)viewDidLoad {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadTable:) name:@"reloadTheTable" object:nil];
}
- (void)reloadTable:(NSNotification *)notification
{
// Calling API here
}
這是工作很好,當應用程序在前臺運行。 但不在後臺並終止狀態。
是否有我或我必須執行的其他任何錯誤?
我更新了我的答案,請檢查它現在 – user3182143