2013-01-04 3 views
1

기기가 이미 앱을 제거한 상황을 테스트하고 있습니다.JavaPNS에서 앱을 제거한 기기의 성공 상태를 확인하십시오.

JavaPNS를 통해 앱을 제거한 iPhone으로 알림을 보내려고했지만 성공했지만 메시지가 수신되지 않았습니다.

관련 앱이 더 이상 장치에 설치되지 않은 경우에도 JavaPNS가 성공적으로 반환되는 이유는 무엇입니까? 어떻게 해결할 수 있습니까?

 for (PushedNotification notification : notifications) { 
      if (notification.isSuccessful()) { 
       //success 
      } else { 
       iPhoneFailedPushed += 1; 
       String deviceId = notification.getDevice() != null ? notification.getDevice().getDeviceId() : ""; 
       String exception = notification.getException() != null ? notification.getException().getMessage() : ""; 
       /* Add code here to remove invalidToken from database */ 
       if (notification.getResponse() != null) 
       { 
        //show error code 
       } 
       else 
       { 
        //show exception     
       } 
       //log fail token 
      } 
     } 
+0

나는 JAVAPNS를 모른다.하지만 성공은 애플 서버에 전달되었다는 의미이다. Apple-Server는 장치에 알림을 전달할 수있는 경우 항상 동기식을 결정할 수는 없으므로 대부분의 경우 알림이 실제로 장치에 도달하지 못하는 경우가 많습니다. 잘못된 디바이스를 제거하려면 JAVAPNS에 비동기 피드백 구현이 있어야합니다. –

+0

imm ... 그러나 그들의 예제로 인해, 그것은 우리가 즉각적으로 token.validSuccessful()이 false 인 경우 유효하지 않은 토큰인지 여부를 알 수있는 것처럼 보입니다. http://code.google.com/p/javapns/wiki/ManagingPushErrors – kitokid

+1

토큰이 얼마 동안 유효했기 때문에 토큰이 Apple-Server에서 제거 될 때까지 성공 응답을받습니다.이 작업에는 다소 시간이 걸릴 수 있습니다. [FeedbackService] (http://code.google.com/p/javapns/wiki/FeedbackService)에서 토큰이 표시되어야합니다. –

답변

1

이 유효한 장치 토큰 (즉 변경되지 않는 응용 프로그램을 제거)이기 때문에,이 경우 오류 응답 패킷을 얻을하지 않습니다. 앱이 제거되었음을 감지하는 유일한 방법은 피드백 서비스를 사용하는 것입니다. APNS 문서에서

: 공급자가 응용 프로그램에 푸시 알림을 제공하기 위해 시도,하지만 응용 프로그램이 더 이상 장치에있는 경우

의 장치가보고하는 애플 푸시 알림 서비스에 대한 사실 . 이 상황은 사용자가 응용 프로그램을 제거 할 때 자주 발생합니다. 장치에서 응용 프로그램의 배달 실패 시도를보고하는 경우 APN 은 해당 장치에 알림을 보내지 않으려면 공급자에게 알릴 수있는 방법이 필요합니다 ( ). 이렇게하면 불필요한 메시지 오버 헤드가 줄어들고 전체 시스템 성능이 향상됩니다.

Apple Push Notification Service에는 배달 실패 시도가 있었던 장치의 응용 프로그램 목록과 함께 APN이 지속적으로 업데이트하는 피드백 서비스가 포함되어 있습니다. 장치는 이진 형식으로 인코딩 된 장치 토큰으로 식별되는 입니다. 제공자는 이 주기적으로 피드백 서비스를 쿼리하여 해당 응용 프로그램에 대한 토큰 목록을 얻고 각각은 항목으로 식별됩니다. 그런 다음 응용 프로그램이 최근에 식별 된 장치에 에 다시 등록되지 않았 음을 확인한 후 공급자는 이 장치에 대한 알림을 중지해야합니다.

관련 문제