让 Socket.io 在 Android Webview 中工作

Posted

技术标签:

【中文标题】让 Socket.io 在 Android Webview 中工作【英文标题】:Getting Socket.io to work in Android Webview 【发布时间】:2013-05-06 20:00:52 【问题描述】:

我正在尝试在 android Webview 的原生 Android 应用程序中使用 socket.io。 Android 活动文件已更新为;

webView.getSettings().setjavascriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.loadUrl("file:///android_asset/www/public/index.html");

我的问题是从 index.html 加载 socket.io.js 库

<script src="http://mydomain:port/socket.io/socket.io.js"></script>

我在渲染 webview 时遇到的错误是:

XMLHttpRequest cannot load http://mydomain:port/socket.io... Origin null is not allowed by Access-Control-Allow-Origin.

我正在使用 node.js/express 服务器尝试为库提供服务,并认为我已将其配置为通过设置接受跨域资源共享 (CORS)

    res.header('Access-Control-Allow-Origin', "*");

现在我完全被卡住了!任何人都可以推荐一种让 socket.io 在这种配置下工作的方法吗?

干杯,

柯布斯

【问题讨论】:

【参考方案1】:

为什么不在活动中运行 service socket.io,试试我的答案

singleton service socket.io

我使用来自 github 的 socket-io.java 客户端库

Gottox

【讨论】:

以上是关于让 Socket.io 在 Android Webview 中工作的主要内容,如果未能解决你的问题,请参考以下文章

Socket.io 延伸

Android Socket.io Websocket 传输在 SSL 中不起作用

Socket.io 未设置 CORS 标头

web socket

Google Glass 上的 Socket.io 客户端

在 android 上解析 socket.io 数据。 (Gottox Socket.IO)