2012-04-10 9 views
5

모바일 장치가 웹 서버에서 생성 될 때마다 알림을받을 수 있습니까?모바일 웹에서 알림 푸시

이 문제는 iPhone 및 Android 용 기본 앱을 통해 얻을 수 있습니다. 하지만 내 요구 사항은 모바일 웹 사이트를 통해 동일하게 달성하는 것입니다. 사용자가 웹 브라우저를 닫았더라도 알림을받을 수도 있습니다.

+0

모든 주요 브라우저에서 구현할 표준 웹 API를 사용할 수 있습니다. http://stackoverflow.com/a/32502379/441757 – sideshowbarker

답변

2

acheive 할 수 있으며, 당신이 이것을 달성하기 위해 2 개 가지 방법이 있습니다

  1. WebSocket을을 (필수 HTML 5)
  2. HTTP 롱 폴링

이 두 방법은 몇 가지 트릭 서버가 필요 소프트웨어, 좋은 예가 Node.JS 플랫폼에서 실행되는 Socket.IO입니다.

웹 소켓에는 HTML 5 브라우저 (예 : Chrome)가 필요하므로 요구 사항에 맞지 않을 수 있습니다.

HTTP 긴 폴링은 서버에서 인바운드 HTTP 연결을 수락 한 다음 데이터를 클라이언트에 푸시 할 때까지 절전 모드입니다. Node.JS는 매우 쉽게이 작업을 수행하도록 설정하거나 추가 기능을 제공하는 Socket.IO (Node.JS의 라이브러리)를 사용할 수 있습니다. Socket.IO는 가능한 경우 웹 소켓에서도 작동합니다. 긴 폴링으로 폴백해야합니다.

요약하면 서버 플랫폼이 필요합니다. 먼저 Socket.IO를 살펴 보시기 바랍니다. 주요 개념을 못쓰게되면 언제든지 자신을 굴릴 수 있습니다. 예를 들어 ASP.net에서 썼다.

+0

브라우저를 닫으면 푸시 알림이 표시됩니까? –

+0

아니요 - 브라우저에서 자바 스크립트의 응용 프로그램으로 더 이상 존재하지 않는 브라우저입니다. 귀하의 메시지 전송을 처리하는 모바일 애플리케이션을 만들어야한다고 생각합니다. 안드로이드에서 서비스로 실행할 수 있습니다. 그런 다음 모바일 HTML/JS를이 앱에 넣고 직접 렌더링하거나 Phonegap에서 전체 내용을 래핑 할 수 있습니다. – justacodemonkey

1

브라우저의 페이지를 닫으면 알림을 수신 할 수 없습니다. 알림은 스마트 폰 OS 백그라운드에서 실행되는 앱에 의해 트리거됩니다.

0

또한이 용도로 SSE (Server Sent Events)를 사용할 수도 있습니다. 안드로이드 ICS는 내가 잘못하면 SSE를 지원합니다. HTML5 바위 (http://www.html5rocks.com/en/tutorials/eventsource/basics/)에는 이에 대한 기사가 있으며 데모 (http://googlecodesamples.com/html5/sse/sse.html)도 나와 있습니다. .

그러나 이러한 솔루션 (웹 소켓, SSE)은 이전 Android 기기에서도 앱을 사용하려는 경우 유용하지 않습니다. 이러한 솔루션은 앱을 시작하지 않을 때 푸시를 받고 싶을 때 유용하지 않습니다. 가장 좋은 해결책은 richbayliss가 제안한 일종의 하이브리드 앱을 만드는 것입니다. 나는 당신이 정말로 이것을위한 phonegap을 필요로하지 않는다고 생각한다. WebView의 loadDataWithBaseURL을 사용하여 이벤트를 실행할 수 있습니다.