Javascript cordova websocket onready for android
致以最良好的祝愿, 我尝试了几个websocket插件,但没有一个对我有效。 我不知道出了什么问题,因为当我在浏览器中尝试代码时,它成功地工作了,但是在构建apk之后,什么都没有发生。 我已经检查了config.xml的配置、权限和插件。 我猜Jelly beans inbrowser不支持websocket(我们已经知道了),但即使在插件中也不支持?只是猜测而已。 我使用jwebsocket作为websocket服务器。 cordova版本3.5.0 请告诉我我的代码出了什么问题Javascript cordova websocket onready for android,javascript,cordova,websocket,Javascript,Cordova,Websocket,致以最良好的祝愿, 我尝试了几个websocket插件,但没有一个对我有效。 我不知道出了什么问题,因为当我在浏览器中尝试代码时,它成功地工作了,但是在构建apk之后,什么都没有发生。 我已经检查了config.xml的配置、权限和插件。 我猜Jelly beans inbrowser不支持websocket(我们已经知道了),但即使在插件中也不支持?只是猜测而已。 我使用jwebsocket作为websocket服务器。 cordova版本3.5.0 请告诉我我的代码出了什么问题 <ht
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<meta name="msapplication-tap-highlight" content="no" />
<title>Hello World</title>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
// device APIs are available
function onDeviceReady() {
var ws = new WebSocket('ws://192.168.1.6:8787/');
ws.onmessage = function () {
alert('a message was recieved');
};
ws.onopen = function () {
ws.send('I just connected!');
};
}
</script>
<script type="text/javascript" src="websocket.js"></script>
</head>
<body onload="onLoad()">
<div class="app">
<h1>Apache Cordova</h1>
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Device</p>
<p class="event received">Device is Ready</p>
</div>
</div>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript">
app.initialize();
</script>
</body>
</html>
你好,世界
//等待加载设备API库
函数onLoad(){
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
}
//设备API可用
函数ondevicerady(){
var ws=newwebsocket('ws://192.168.1.6:8787/');
ws.onmessage=函数(){
警报(“收到消息”);
};
ws.onopen=函数(){
ws.send('我刚刚连接!');
};
}
阿帕奇科尔多瓦酒店
连接到设备
设备已准备就绪
app.initialize();
websocket.js在哪里?是通过电话还是网络服务器?。您还需要启用CORS。您可以搜索stackoverflow以查找如何启用CORS。您好,Frank,www中的Websocket.js在我的cordova项目(电话)中,CORS是从apache httpd.conf启用的。什么是Websocket.js?它是WebSocket的图书馆吗?使用websocket是否只需要一个文件websocket.js
。如果它是一个库,那么它将需要额外的文件来完成它的任务。通过将websocket.js文件放在www
目录中,它将开始搜索同一目录中的其他文件,根据您的评论,这些文件将不可用。因此,它将失败。您还需要在客户端启用CORS。config.xml中有一个参数origin
,需要设置2 b。另外,在通过new
操作符创建WebSocket
对象时,请检查返回值。您好,WebSocket.js是WebSocket的配置文件。超时、握手等。。不需要额外的文件(我明白你的意思)。我确实从config.xml在android项目中启用了CORS,我正在使用github()的插件。我在问题部分读到一些人有我同样的问题,但没有找到解决办法。我明天就试试:)你为什么不试试socket.io?它似乎适合你的目的。