2012-04-10 19 views
5

Czy możliwe jest otrzymywanie powiadomień na urządzeniach mobilnych za każdym razem, gdy jest generowany z serwera WWW.Powiadomienie push w sieci komórkowej

Tę rzecz można osiągnąć dzięki natywnym aplikacjom na iPhone'a i Androida. Ale moim wymaganiem jest osiągnięcie tego samego za pośrednictwem witryny mobilnej. Możliwe jest również otrzymywanie powiadomień, nawet jeśli użytkownik zamknął przeglądarkę internetową.

+0

Jest to teraz możliwe przy użyciu standardowych Web API przeznaczonych do wdrożenia we wszystkich głównych przeglądarkach. Zobacz http://stackoverflow.com/a/32502379/441757 – sideshowbarker

Odpowiedz

2

Możliwe jest acheive i masz 2 główne sposoby osiągnięcia tego celu:

  1. WebSockets (HTML 5 wymagane)
  2. HTTP długo sondowania

Obie metody wymagają pewnego serwera sztuczka oprogramowanie, dobrym przykładem jest Socket.IO działający na platformie Node.JS.

Websockets wymaga przeglądarki HTML 5 (np. Chrome), więc może nie działać zgodnie z Twoimi wymaganiami.

Długie pobieranie przez HTTP jest aktem akceptacji przychodzącego połączenia HTTP na serwerze, a następnie uśpienia, dopóki nie chcesz przekazać danych do klienta. Node.JS można ustawić tak, aby to zrobić całkiem łatwo, lub możesz użyć Socket.IO (biblioteki na Node.JS), która zapewnia dodatkową funkcjonalność. Socket.IO działa również z Websockets, gdzie to możliwe - i wraca do długiego sondowania, jeśli to konieczne.

Krótko mówiąc, do tego celu potrzebna jest platforma serwerowa - na początek warto zapoznać się z Socket.IO. Zawsze możesz rzucić własną, gdy już przybędziesz do głównego pomysłu. Napisałem jeden w ASP.net, który działał całkiem dobrze, na przykład.

+0

Czy powiadomienia push będą przychodzić, jeśli przeglądarka jest zamknięta? –

+0

nie - jako aplikacja w Javascript w przeglądarce, która już nie istnieje. Myślę, że musisz stworzyć aplikację mobilną do obsługi transportu wiadomości - na Androida możesz uruchomić jako usługę. Następnie możesz umieścić swój mobilny HTML/JS w tej aplikacji i renderować bezpośrednio - lub zawijać całą partię w Phonegap ... – justacodemonkey

1

Nie można odbierać powiadomień po zamknięciu strony w przeglądarce. Powiadomienia są uruchamiane przez aplikacje działające w tle OS telefonu smartphone.

0

Do tego celu można również użyć zdarzeń wysyłanych przez serwer (SSE). Android ICS obsługuje SSE, jeśli się nie mylę. Skały HTML5 (http://www.html5rocks.com/en/tutorials/eventsource/basics/) zawierają artykuł na ten temat, a także wskazują na wersję demonstracyjną (http://googlecodesamples.com/html5/sse/sse.html) .

Jednak żadne z tych rozwiązań (strony internetowe, SSE) nie przydadzą się, jeśli chcesz, aby aplikacja działała również na starszych urządzeniach z Androidem. Te rozwiązania nie przydadzą się, jeśli chcesz otrzymywać push, gdy Twoja aplikacja nie zostanie uruchomiona. Najlepszym rozwiązaniem jest zbudowanie jakiejś aplikacji hybrydowej zgodnie z sugestią Richbayliss. Chyba nie potrzebujesz do tego karty. Możesz wystrzelić zdarzenie za pomocą loadDataWithBaseURL z WebView

Powiązane problemy