2012-04-10 3 views
5

Можно ли получать уведомления на мобильных устройствах всякий раз, когда они сгенерированы с веб-сервера.Push Notification In Mobile Web

Эта вещь может быть выполнена с помощью собственных приложений для iPhone и Android. Но мое требование - добиться того же через мобильный сайт. Также можно получать уведомления, даже если пользователь закрыл веб-браузер.

+0

Теперь можно использовать стандартные веб-API, предназначенные для реализации во всех основных браузерах. См. Http://stackoverflow.com/a/32502379/441757 – sideshowbarker

ответ

2

можно получения идеальной, и у вас есть 2 основных пути достижения этой цели:

  1. WebSockets (HTML 5 требуется)
  2. HTTP длинного опроса

Оба метода требуют какой-то трюк сервера программное обеспечение, хорошим примером является Socket.IO, работающий на платформе Node.JS.

Для веб-сайтов требуется браузер HTML 5 (например, Chrome), поэтому может не работать для ваших требований.

Длительный опрос HTTP - это принятие входящего HTTP-соединения на сервере, а затем спящий режим, пока вы не захотите передать данные клиенту. Node.JS можно настроить так, чтобы сделать это довольно легко, или вы можете использовать Socket.IO (библиотека на Node.JS), которая обеспечивает дополнительную функциональность. Socket.IO также работает с веб-сайтами, где это возможно, и возвращается к длинному опросу, если это необходимо.

Короче говоря, для этого вам понадобится серверная платформа. Предлагаю вам взглянуть на Socket.IO для начала. Вы всегда можете бросить свой собственный, как только у вас будет основная идея. Я написал один в ASP.net, который работал довольно хорошо, например.

+0

Будут ли появляться push-уведомления, если браузер закрыт? –

+0

no - как приложение в Javascript в браузере, которое больше не существует. Я думаю, вам нужно создать мобильное приложение для обработки вашего транспорта сообщений, которое на Android можно запустить как сервис. Затем вы можете поместить свой мобильный HTML/JS в это приложение и визуализировать напрямую - или обернуть всю партию в Phonegap ... – justacodemonkey

1

Невозможно получить уведомления после закрытия страницы в браузере. Уведомления запускаются приложениями, работающими на фоне смартфона os.

0

Для этой цели также можно использовать события, связанные с сервером (SSE). Android ICS поддерживает SSE, если я не ошибаюсь. В полях HTML5 (http://www.html5rocks.com/en/tutorials/eventsource/basics/) есть статья об этом, а также показано демо (http://googlecodesamples.com/html5/sse/sse.html) ,

Однако ни одно из этих решений (websockets, SSE) не было бы полезно, если вы хотите, чтобы ваше приложение также работало на старых Android-устройствах. Эти решения не полезны, если вы хотите получать push, когда ваше приложение не запускается. Лучшим решением является создание своего рода гибридного приложения, как это предлагает richbayliss. Наверное, вам не нужна телефонная задержка для этого. Вы можете запустить событие с помощью loadDataWithBaseURL WebView