program story

didReceiveRemoteNotification : fetchCompletionHandler의 구문 분석 경고

inputbox 2020. 11. 9. 08:08
반응형

didReceiveRemoteNotification : fetchCompletionHandler의 구문 분석 경고


parse.com에서이 코드를 추가 한 후 오류가 발생합니다.

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    if (application.applicationState == UIApplicationStateInactive) {
        [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
    }
}

나는 무슨 일이 일어나고 있는지 정말로 이해하지 못하지만 로그에 다음 경고가 표시됩니다.

-[application : didReceiveRemoteNotification : fetchCompletionHandler :]를 구현했지만 여전히 Info.plist의 지원되는 UIBackgroundModes 목록에 "remote-notification"을 추가해야합니다.

plist 파일을 추가 UIBackgroundModes - remote-notification하면 문제가 해결 될 것입니다.

하지만 그렇게하면 단어가 다음과 같이 바뀝니다.

Required Background Modes -> App downloads content in response to push notifications

내 앱이 수행하지 않는 것이므로 처음에 왜이 작업을 수행하는지 혼란 스럽습니다.


원격 알림에 대한 응답으로 데이터를 가져 오지 않으려면이 대리자 메서드를 구현할 수 있다고 생각합니다.

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

예 :

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {
    if (application.applicationState == UIApplicationStateInactive) {
        [PFAnalytics trackAppOpenedWithRemoteNotificationPayload:userInfo];
    }
}

현재 사용중인 것 대신.


.plist파일 에 수동으로 키를 추가하고 싶지 않은 경우 @MurraySagal의 답변의 그래픽 버전이 있습니다. 1에서 7까지의 단계를 수행하면 완료됩니다. :)

여기에 이미지 설명 입력

참고 : 단계를 읽을 수없는 경우 Command+ +(확대 용) 및 Command+ -(축소 용 ) 조합을 사용하여 현재 탭을 축소 할 수 있습니다 . 경우 Command작동하지 않습니다, 당신은으로 시도 할 수 있습니다 Ctrl.


@djshiow가 문제를 해결하지 못한다고 생각합니다.

info.plist 파일에 다음을 추가해야합니다.

원격 알림

1) 새 행을 추가하고 왼쪽 열에서 필수 배경 모드를 선택 합니다 .

2) 항목 0 행에서 오른쪽 열을 클릭하고 원격 알림을 입력하십시오 . 엔터 키를 치시오.

출처 : http://hayageek.com/ios-silent-push-notifications/


Xcode 6 :

  • 프로젝트 네비게이터에서 프로젝트를 클릭하십시오.
  • 프로젝트 및 대상 목록에서 대상을 클릭하십시오.
  • 클릭 기능
  • 백그라운드 모드 확장 및 켜기
  • 원격 알림을 클릭하십시오.

그러면 Required background modes키와 App downloads content in response to push notifications이에 추가 됩니다 info.plist.


새로운 didReceive ... 메소드를 사용할 때 다음 두 가지 작업을 수행해야합니다.

  1. plist에 필요한 항목을 추가하십시오.
  2. 데이터 처리를위한 이벤트를 처리 할 완료 핸들러 추가

데이터를 다운로드하지 않으려면이를 didReceive ... 메소드에 추가 할 수 있습니다.

completionHandler(.NoData)

참고 URL : https://stackoverflow.com/questions/20009006/parse-warning-from-didreceiveremotenotificationfetchcompletionhandler

반응형