2012-11-22 36 views
11

Heute ist mein Problem, dass ich eine App entwickle, die einen WebSocket verwendet. Auf iOS läuft alles gut, aber auf dem Android WebView wird der WebSocket nicht unterstützt. Was ist der schnellste/eleganteste Weg, um dieses Problem zu lösen?WebSocket in Android WebView

[Bearbeiten]

Da dieser Beitrag sehr oft gesehen wird möchte ich einige mögliche Lösungen teilen.

Lösungen:

  1. Java Websocket Client-Implementierung & JavaScript-Schnittstelle
  2. PHP Websocket Client-Implementierung & einen Hintergrund (dh jQuery GET) Anforderung an das PHP-Skript (arbeitete als ich für mich wollte nur eine Zeile der Nachricht senden.)

Android Websocket Bibliotheken

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

Jemand hatte das gleiche Problem und descriped, wie er arbeitete um

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

Antwort

2

In der Android-Webansicht ist WebSocket nicht enthalten. Sie müssen also mit einer WebSocket-Bibliothek implementieren.

jWebSocket http://jwebsocket.org/

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

+1

Was ist, wenn ich es ohne chaning die HTML/JS Quelle gehen wollen. Was halten Sie davon, das JS-WebSocket-Objekt durch eine JavaScript-Schnittstelle zu überschreiben? –

4

Ich habe ein Beispielprojekt, das die WebSocket-Objekt mit dem WebView für phonegap hinzufügt. Sie können es hier finden: https://github.com/pusher/pusher-phonegap-android

ich ein Video hier geht über das Projekt setzen: http://blog.pusher.com/2012/7/5/pusher-on-phonegap-for-android

ich dieses Projekt verwendet zu zeigen, wie PhoneGap mit Pusher auf Android zu verwenden, aber es ist letztlich nur ein Projekt, das passiert mit dem Pusher-Skript-Tag. Sie können problemlos eine andere Bibliothek verwenden, die das WebSocket Objekt benötigt oder einfach direkt verwenden.

Es nutzt die WebSocket-android-phonegap Bibliothek: https://github.com/anismiles/websocket-android-phonegap

+0

Schließen Sie Ihre PhoneGap App in ein Android WebView ein oder öffnen Sie sie einfach im Android Browser? –

+0

Das Beispielprojekt erstellt eine PhoneGap-Anwendung, die Android WebView mit einem injizierten WebSocket-Objekt verwendet.Das bedeutet, dass Sie 'WebSocket' innerhalb des JavaScript-Codes verwenden können, der in Android WebView ausgeführt wird. – leggetter

+0

Es ist also eine JavaScript-Schnittstelle für Android, oder? –