2012-09-04 3 views
0

많이 봤지만 대답을 찾을 수 없습니다.iOS - 푸시 내용

앱이 백그라운드에있는 동안 푸시 알림의 콘텐츠/페이로드를 가져 오려고합니다.

방법 :

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

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

이 작동하지 않습니다.

+0

메소드 didReceiveRemoteNotification :이 (가) 호출 되었습니까? 안 그래요? – MaTTP

+0

푸시 알림이 도착하는 동안 응용 프로그램이 포 그라운드에있을 때만 호출됩니다. – Maik639

답변

1

당신이 -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo가되지 즉시 있지만 전경에 응용 프로그램을 가져 오는 사용자를 눌러 "열기"버튼 후 호출되는 방법 (오디오, GPS 또는 VoIP를 중 하나) 응용 프로그램에 대한 모든 background mode이없는 경우. 알림을 건너 뛰기로 결정하면 응용 프로그램이 포 그라운드로 되돌아 왔을 때 상태를 새로 고침해야한다는 의미이므로 아무 것도 할 수 없으며 밀어 넣기 알림을 사용하여 데이터를 업데이트 할 수 없습니다.

더 좋은 옵션은 배지 카운터를 사용하여 변경 사항을 추적하는 것일 수 있습니다. 서버 측에서 계산해야합니다. 포 그라운드의 앱에 긍정적 인 배지 번호가있는 경우 데이터를 업데이트하고 카운터를 재설정합니다. 그러나 통지가 전달된다는 보장이 없으므로 완벽하지는 않습니다. 배지 카운터를 확인하거나 변경 횟수를 수동으로 확인해야합니다.

+0

- (void) 응용 프로그램 : (UIApplication *) 응용 프로그램 didReceiveRemoteNotification : (NSDictionary *) userInfo 모든 푸시가있는 배열을 수신합니다. 앱이 이미 포 그라운드에있는 경우에만 작동합니다. 사용자가 홈 버튼을 누르고 푸시를 수신하고 앱을 시작하는 것보다. 나는 푸시를 결코 얻지 않을 것이다 – Maik639

+0

문서에 따르면이 메소드 나'application : didFinishLaunchingWithOptions :'(키가 'UIApplicationLaunchOptionsRemoteNotificationKey'인 옵션에 저장되어있는 페이로드로)는 수신 결과로 호출된다. '실행 중) 푸시 알림. –

+0

정말 작동하지 않습니다 .../ – Maik639