2014-11-18 3 views
2

배경 작업을하고있는 iOS 애플리케이션을 개발 중입니다. 나는 침묵의 통지를 보내서 깨어 나고있다. 코드는 대부분 잘 작동합니다.전화/네트워크 변동시 IOS 원격 무음 알림이 작동하지 않습니다.

낮은 전화 접속 또는 네트워크 변동 도중 앱이 깨어 있지 않아도 전화 통화 중 앱이 깨지 않고 있습니다.

나는 다음과 같은 일을하고있다 :

1: Enabled 2 background mode 
    i) Background fetch. 
    ii)Remote notification. 

2: Sending notification as: 

    { 
    aps: { 
      content-available: 1, 
      sound: "" 
      message:"background fetch" 
     } 
    } 

and 
3) 
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{ 
    UALogFull(@"\n\n BACKGROUND NOTIFICATION \n\n\n"); 
    completionHandler(UIBackgroundFetchResultNewData); 

} 

나의 관찰은 : 응용 프로그램이 충돌되지 을. 전화 통화 중에 알림이 표시되는 경우에도 "배경 알림"이 로깅되지 않습니다 (모바일이 Wi-Fi에 연결됨).

정확도를 얻는 방법 알려주세요.

+0

나 해결책을 알려 주시기 바랍니다. –

+0

전화 통화 중 푸시 알림을받을 때/앱이 백그라운드에있을 때 소리를들을 수 있습니까 ?? 이 페이로드를 사용해보십시오 :'{ "aps": { "alert": "Hello World", "소리": "기본값", "콘텐츠 사용 가능": 1 }}'경고를보고 있음을 알리기 위해 푸시 알림 수신 중 – iMemon

+0

알림을 수신하는 장치가 작동하지만 일시적인 장치가 일시 중단 모드에서 백그라운드로 약화 될 수 없습니다. –

답변

1

나는 침묵하는 알림을 보내는 것만으로도 응용 프로그램이 곧 알림을 받게된다는 것을 의미하지는 않습니다.

GSM iPhone을 사용하여 관찰 한 내용입니다. 내가 전화 통화 중일 때마다 셀룰러 데이터 유형은 밴드를 드롭합니다. LTE -> 3G, 3G -> EDGE 등. 따라서 데이터 네트워크는 신뢰할 수 없습니다.

또한 네트워크 변동도 발생하지 않으며 시스템에서 알림을 수신했음을 나타내며 배터리 절약을 위해 전달하지 않았습니다. 셀룰러 데이터 연결이 느릴수록 배터리가 더 많이 소모됩니다.

wifi의 전화 문의와 관련하여 조용한 알림을받지 못했습니다. 셀룰러 칩이 실행 중입니다. Wi-Fi를 사용하면 배터리가 더 많이 소모됩니다.

내 이해에서 자동 알림은 장치에 사용 가능한 새로운 데이터가 있음을 알리는 것입니다. 백그라운드에서 데이터를 다운로드 할 수있는 창은 작은 창이므로 본질적으로 설명하는 예제가 적절하지 않은 경우가있을 수 있습니다.

전화 중 -> 셀룰러 칩이 음성 전송에 사용되고 있습니다. 데이터 전송은 배터리 수명에 큰 영향을 미칠 수있는 칩의 추가 작업입니다.

네트워크 변동 -> 시스템에서 데이터를 다운로드 할 수있는 단단한 연결을 보장 할 수 없습니다. 또한 더 느린 데이터 속도 영역에있는 것은 더 강하고 안정된 연결 밴드를 찾으려는 셀룰러 칩에 추가적인 부담입니다.

자동 알림을 사용하면 사용자가 앱으로 다시 전환 할 때 앱이 새로운 데이터를 사용자에게 제공하여 새로운 정보를 오랫동안 기다릴 필요가 없습니다. 하지만 앱 기능의 필수 요소는 아닙니다. 또한 시스템은 마지막 출시 이후의 시간과 같은 다른 요소를 기반으로 통지를 전달할지 여부를 결정합니다. 앱을 닫은 후 너무 오랜 시간이 지나면 앱이 우선 순위를 얻지 못하고 다른 앱을 기다려야 할 수도 있습니다.

너무 짧기 때문에 콘텐츠가 아직 비교적 오래되었습니다. long time : 사용자가 앱을 많이 사용하지 않습니다. 자원을 저장하십시오.

이 발사 패턴으로 혼합하십시오. 사용자가 이전 패턴을 기반으로 앱을 실행할 가능성이 높은 시점에 알림을 보내면 알림을받을 확률이 높아집니다.

마지막으로 문서를 인용합니다 :

중요 : 알림 배달이 "최선의 노력"을 보장하지 않습니다. 새로운 데이터가 있음을 사용자에게 알리기 위해 앱에 데이터를 전달하는 것이 아닙니다.

Found Here

+0

5 분마다 알림을 보냅니다. 24 시간 만에 6-8 시간 만 떨어 뜨립니다. –

+0

각 통지가 전달되는 것을 보장 할 수는 없습니다. 2 % 실패율은 매우 좋습니다. 앞에서 말했듯이, 시스템은 다른 요소를 기반으로 통보를 통과할지 여부를 결정합니다. 또한 APNS 시스템을 추가하는 것은 "최선의 노력"이며 100 % 배달을 보장하지 않습니다. 낮은, 평균 및 높은 사용량을 기반으로 기기에서 앱을 실행 한 경우 성공률이 달라집니다. –

+1

나는 그것을 집계했다. 그러나 일련의 알림 (일련의 2 ~ 3 개의 알림 삭제)에서 작동하지 않는 문제가 있습니다. –

관련 문제