2014-09-18 3 views
0

사용자가 온라인 및 오프라인 상태에서 데이터를 입력 할 수있는 앱을 개발 중입니다. 이 데이터는 서버와 동기화되어야합니다. 사용자가 온라인 상태이면 문제가되지 않습니다. 하지만 지금은 오프라인 상태에서 사용자가 입력 한 데이터를 보내야합니다. 예를 들어 비행기에서 나가고 전화가 네트워크에 연결될 때 인터넷에 연결되는 순간입니다.휴대 기기가 인터넷에 연결되면 바로 앱 데이터 전송

내가 염두에두고있는 현재의 해결책은 iOS 및 Android에서 사용할 수있는 백그라운드 서비스를 사용하여 X 분마다 서버를 폴링하여 전화가 온라인인지 확인하는 것입니다. Android에서 문제가되는 것 같지 않습니다. 그러나 iOs는 더 어려워 보인다. 이 게시물에 따르면 iOS app upload data to server as soon as network is available은 불가능합니다. 그러나 iOS 7이이 사용 사례를 실현할 수있는 새로운 배경 기능을 추가 한 것 같습니다. 나는 그것에 대한 좋은 예제 나 문서를 찾을 수 없다.

핵심 질문은 앱이 현재 사용 중이 아니더라도 휴대 전화가 온라인으로 연결된다는 사실을 어떻게 감지 할 수 있습니까 (심지어 마지막으로 휴대 전화를 다시 시작한 이후로 전혀 사용하지 않았을 수도 있음) ?

+0

혼란 스럽습니다. 이 질문은 Android 또는 iOS와 관련이 있습니까? – Leo

+0

iOS7에서 백그라운드 가져 오기를위한 [튜토리얼] (http://www.appcoda.com/ios7-background-fetch-programming/)이 있습니다.하지만이 배경 가져 오기 호출은 전적으로 iOS에 의존하므로 고정시킬 수 없습니다 웹 서비스를 시작하기위한 시간 간격. – nikhil84

+0

둘 다 실제로 관련이 있습니다. 기능은 크로스 플랫폼이어야하므로 두 플랫폼 모두에서 최고의 전략 접근 방식이 필요합니다. iOS에 필요한 전략은이를 처리하는 방법을 찾을 수 없기 때문에 우선 순위가 더 있습니다. –

답변

0

최근 백그라운드 가져 오기를 수행하는 데 완벽한 코드 조각을 발견했습니다.

참고 : 배경 가져 오기로 작업 할 때주의해야하는 제한 사항이 있습니다. 응용 프로그램에 주어진 백그라운드 실행 시간은 무한하지 않습니다. iOS는 앱을 깨우고 새 데이터를 가져오고 인터페이스를 업데이트 한 다음 다시 잠자기 상태로 돌아가려면 30 초의 시간 프레임을 제공합니다. 수행 된 작업이이 30 초 내에 완료 될 수 있는지 확인하는 것이 의무입니다. 그렇지 않으면 시스템이 갑자기 중지됩니다. 더 많은 시간이 있지만 필요한 경우, 다음 배경 전송 서비스의 API를 사용할 수 있습니다

코드 : DemoProject

참조 : ios7-background-fetch-programming

내가 당신에게 도움이 될 것입니다 바랍니다.

0

귀하의 앱이 음악 플레이어 앱이거나 위치 기반 등의 앱이 아니면 최소화 된 상태에서 IOS가 앱을 허용하지 않습니다.

+0

분명 iOS 7 이전에는 사실 이었지만 제대로 이해한다면 현재 백그라운드 서비스를 활성화하여 작업을 수행 할 수있는 방법이 있습니다. –

+0

앱 업데이트를 위해 백그라운드 앱 새로 고침 기능을 사용할 수 있습니다. – user2885077