14

今天我的问题是我正在开发一个使用 WebSocket 的应用程序。在 iOS 上一切正常,但在 android 上 WebView 不支持 WebSocket。解决这个问题的最快/最优雅的方法是什么?

[编辑]

由于这篇文章经常被查看,我想分享一些可能的解决方案。

解决方案:

  1. Java Websocket 客户端实现 & JavaScript 接口
  2. PHP Websocket 客户端实现 & 向 PHP 脚本发出背景(即 jQuery GET)请求(对我有用,因为我只想发送一行消息。)

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
4

3 回答 3

4

我创建了一个示例项目,它将 WebSocket 对象添加到用于 phonegap 的 WebView。你可以在这里找到它: https ://github.com/pusher/pusher-phonegap-android

我在这里放了一个关于该项目的视频:http: //blog.pusher.com/2012/7/5/pusher-on-phonegap-for-android

我使用这个项目来演示如何在 Android 上将 PhoneGap 与Pusher一起使用,但最终它只是一个恰好包含 Pusher 脚本标签的项目。您可以轻松地使用另一个需要该WebSocket对象的库,或者直接使用它。

它使用 websocket-android-phonegap 库: https ://github.com/anismiles/websocket-android-phonegap

于 2012-11-23T10:52:31.670 回答
2

Android webview 不支持 WebSocket。所以你需要用一些 WebSocket 库来实现。

jWebSocket http://jwebsocket.org/

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

于 2012-11-22T07:13:16.743 回答
1

首先检查您的错误代码;如果代码是:ERR_CLEARTEXT_NOT_PERMITTED;尝试将 android:usesCleartextTraffic="true" 添加到 AndroidManifest.xml 中的应用程序标记,如下所示:

 <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:theme="@style/AppTheme"
    android:usesCleartextTraffic="true">
于 2020-09-30T08:30:13.180 回答