WebSocket в Android WebView

Сегодня моя проблема в том, что я разрабатываю приложение, использующее WebSocket. На iOS все работает отлично, но на Android-сервере WebView не поддерживает WebSocket. Какой самый быстрый / самый элегантный способ решить эту проблему?

[редактировать]

Поскольку этот пост просматривается довольно часто, я хочу поделиться некоторыми возможными решениями.

Решения:

  1. Внедрение интерфейса Java Websocket и интерфейс JavaScript
  2. Внедрение PHP Websocket Client и создание фонового (т.е. jQuery GET) запроса на PHP-скрипт (работал для меня, поскольку я хотел отправить только одну строку сообщения.)

Библиотеки Android Websocket

  1. http://autobahn.ws/
  2. http://code.google.com/p/weberknecht

У кого-то была такая же проблема и описал, как он работал

  1. http://chpeck.tumblr.com/post/37273036645/socket-io-with-android-webview

Веб-просмотр Android не поддерживает WebSocket. Таким образом, вам необходимо реализовать некоторую библиотеку WebSocket.

JWebSocket http://jwebsocket.org/

Weberknecht http://code.google.com/p/weberknecht/

Я создал образец проекта, который добавляет объект WebSocket к WebView для телефонного разговора. Вы можете найти его здесь: https://github.com/pusher/pusher-phonegap-android

Я размещаю видео по проекту здесь: http://blog.pusher.com/2012/7/5/pusher-on-phonegap-for-android

Я использовал этот проект, чтобы продемонстрировать, как использовать PhoneGap с Pusher на Android, но в конечном итоге это просто проект, который включает тег сценария Pusher. Вы можете легко использовать другую библиотеку, для которой нужен объект WebSocket или просто использовать его напрямую.

Он использует библиотеку websocket-android-phonegap: https://github.com/anismiles/websocket-android-phonegap

Intereting Posts
Google Cloud Messaging (GCM) и registration_id истекает, как я узнаю? GridLayout против TableLayout Кордова – Браузер в приложении для отображения веб-сайта как рабочего стола (Android) Есть ли способ обнаружить, когда текст был выбран в веб-виде? Корень SDK App Engine не установлен. Убедитесь, что вы установили системную переменную среды «APPENGINE_HOME» «appengine.sdk.root»! Android: запретить пользователю выбирать только текст автозаполнения Android HTML.fromHTML () с изображениями? Android: изменение размера растровых изображений без потери качества React-Native: модуль AppRegistry не является зарегистрированным вызываемым модулем NestedScrollView и CollapsingToolbarLayout быстрый прокрутка Делают ли темы добавление большого количества накладных расходов в приложение? ARM Neon Assembler – странная проблема с конвейером Aapt работает некорректно – не может генерировать идентификаторы R на новом проекте TextView не расширяется, чтобы соответствовать высоте TableRow При нажатии на editText показать клавиатуру Android