【问题标题】:Websocket not working on my Android app (with Phonegap Build)Websocket 无法在我的 Android 应用程序上运行(使用 Phonegap Build)
【发布时间】:2016-08-17 13:49:15
【问题描述】:

我尝试开发一个连接到 websocket 服务器的简单移动应用程序。我使用 Phonegap Build 制作了我的 Android .apk,这是 html 代码:

<html>
<head>
<title>Testing websockets</title>
</head>
<body>
<div id="messages"></div>
<script type="text/javascript">
var webSocket = 
  new WebSocket('ws://192.168.82.1:8080/WebSocket/websocket');

webSocket.onerror = function(event) {
  onError(event)
};

webSocket.onopen = function(event) {
  onOpen(event)
};

webSocket.onmessage = function(event) {
  onMessage(event)
};


function onMessage(event) {

    document.getElementById('messages').innerHTML 
    += '<h1 align="center"/>' +"    "+ event.data;   

}

function onOpen(event) {

  document.getElementById('messages').innerHTML 
  += '<h1 align="center"/>connection established';
}

  function onError(event) {
  alert(event.data);
}

</script>
</body>
</html>

代码在我的导航器上运行良好,但在我使用 Android 应用程序时甚至没有出现“已建立连接”的消息。 这段代码有问题还是我的应用需要一些库?

PS:我有另一个带有按钮的代码,它向服务器发送消息并从中接收文本,当然这是同样的问题!

【问题讨论】:

    标签: android cordova websocket phonegap-build


    【解决方案1】:

    WebSockets 仅在 Android 4.4 之后的 WebView 中支持。因此,如果您想在较旧的 android 版本中使用它,您有一些选择:

    • 使用提供该功能的 Cordova 插件。例如https://github.com/knowledgecode/WebSocket-for-Android(这只是一个例子,我从未使用过那个插件)

    • 在支持时使用SockJSsocket.io 之类的东西来提供webSockets,在不支持时回退到其他技术。请注意,使用这些技术需要您也在服务器中使用它们

    【讨论】:

    • 谢谢,我还发现他们的 repo 上有一个 PhoneGap Build WebSocket 插件。我会尝试两种解决方案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    相关资源
    最近更新 更多