2014-12-10 2 views
1

서버에서 데이터를 수신하는 앱을 만듭니다. 실시간으로 데이터를 받으려면 socketIO를 사용합니다.이 유틸리티는 현재 앱이 열릴 때 잘 작동합니다.Cordova/Phonegap은 앱이 백그라운드에 있어도 푸시 데이터를 수신합니다.

이제 앱이 백그라운드에 있거나 기기가 다시 시작된 경우에도 서버에서 데이터를 수신하고 싶습니다.

그래서 :

  1. 서버가 새로운 데이터 (객체)가 특정 사용자에게 전송해야
  2. 서버는
  3. 사용자 백그라운드에서 데이터를 얻을 특정 사용자에게 데이터를 전송하고 로컬
  4. 경우 통지를 저장 데이터가 적절 함

이 플러그인에 대해 읽은 적이 있지만 https://github.com/phonegap-build/PushPlugin 데이터를 먼저 저장하고 싶습니다. 앱이 데이터를 사용자에게 알리는 것과 관련이없는 경우 앱에서 결정하도록합니다.

도움 주셔서 감사합니다.

답변

2

푸시 알림 (PN)은 휴대 전화 OS에서 처리합니다 (Android 및 iOS에서 유사합니다). 앱이 PN 수신자로 등록 된 후 실제 알림이 GCM 또는 APNS 서버에 의해 기기로 전송되며, 기기에서 수신됩니다. OS는 PN의 대상 앱이 포 그라운드에서 실행 중인지 확인하고,이 경우 PN을 이벤트로 응용 프로그램에 전달합니다. 귀하의 경우에는 데이터를 보관하거나 경보를 표시 할 수 있습니다.

그러나 앱이 실행 중이 아니거나 일시 중지되어 있고 PN에 메시지 (Android의 경우 '알림'속성, Android의 경우 '메시지')가 포함되어있는 경우 OS는 사용자에게 알림을 표시합니다. 앱. 사용자가 앱에 이벤트가 전파되었다는 알림을 클릭하거나 슬라이드하는 경우에만 해당됩니다. 따라서 PN 은 사용자가 앱에서 데이터를 처리하고 필터링하기 전에 알림을 보게되므로 메시지가 작동하지 않습니다.

시나리오를 작동 시키려면 메시지/경고없이 PN을 보내야합니다. 이렇게하면 백그라운드에 있더라도 앱에 바로 전달할 수 있습니다. 그런 다음 자신 만의 로컬 알림을 구현해야하지만 플러그인도 있습니다.

포어 그라운드에 있지 않을 때 앱이 수행 할 수있는 작업을 제한하므로 iOS에서 작동시키는 것이 더 복잡합니다. here과 iOS에 대한 대체 접근법을 제공하는 "적은 양의 콘텐츠를 기회 적으로 가져 오기"섹션을 읽어보십시오.

0

앱이 백그라운드 일 때 socket.io 서버에서 데이터를 받으려면 사용자가 포 그라운드에서 앱을 사용하지 않아도 계속 실행될 수있는 백그라운드 네이티브 서비스를 개발하는 것이 좋습니다. https://github.com/nkzawa/socket.io-client.java과 같은 Socket.IO Java 클라이언트 라이브러리를 사용할 수 있습니다.

관련 문제