Я использую APNS в своем приложении iOS. Я получаю уведомления Apple push on на переднем плане, но когда мое приложение переходит в фоновом режиме или в неактивный режим, мое приложение не получает никаких push-уведомлений.Как получить уведомление APNS push в фоновом режиме в iOS6?
Мой код, который я попробовал это следующим образом:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
UIApplicationState state = [application applicationState];
if (state == UIApplicationStateActive) {
NSLog(@"active");
NSDictionary *apsInfo = [userInfo valueForKey:@"aps"];
NSString *fv=[[apsInfo valueForKey:@"alert"] componentsJoinedByString:@""];
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Active" message:fv delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
}else if (state == UIApplicationStateBackground){
NSLog(@"background");
NSDictionary *apsInfo = [userInfo valueForKey:@"aps"];
NSString *fv=[[apsInfo valueForKey:@"alert"] componentsJoinedByString:@""];
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Background" message:fv delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
}
}else{
NSLog(@"Inactive");
NSDictionary *apsInfo = [userInfo valueForKey:@"aps"];
NSString *fv=[[apsInfo valueForKey:@"alert"] componentsJoinedByString:@""];
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Inactive" message:fv delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
}
}
Пожалуйста, скажите мне, где я неправильно или что-то отсутствует.
Ok Эран, я изменил мой код выглядит следующим образом: - (Недействительными) применение: (UIApplication *) применение didReceiveRemoteNotification: (NSDictionary *) USERINFO { NSDictionary * apsInfo = [USERINFO valueForKey: @ "АПС"]; NSString * fv = [[apsInfo valueForKey: @ "alert"] componentsJoinedByString: @ ""]; UIAlertView * alert = [[UIAlertView alloc] initWithTitle: сообщение «Alert»: fv delegate: self cancelButtonTitle: @ «Ok» otherButtonTitles: nil, nil]; [alert show];}, но затем также не вижу никаких уведомлений в фоновом состоянии. Любой ключ –
@Eran: «Если он не запущен, вызывается другой метод». Другой метод? Это было бы очень полезно для других, которые пришли сюда, если бы вы могли указать этот метод. –
@ S.Philip Спасибо за комментарий, я обновил ответ. – Eran