任何人都可以建议我如何解决这个问题。
我希望在 phonegap 上的 jquery 移动应用程序和 java 服务器之间建立双向通信。
可以建立发布/订阅通信吗?
有没有办法使用JMS?
我尝试过 websockets,但我觉得它缺乏控制,即:我无法找到一种方法来列出服务器上连接的客户端数量等。这可能是因为我对 web sockets 缺乏了解,但是 web插座对我来说看起来欠发达。
有什么建议么。
谢谢
任何人都可以建议我如何解决这个问题。
我希望在 phonegap 上的 jquery 移动应用程序和 java 服务器之间建立双向通信。
可以建立发布/订阅通信吗?
有没有办法使用JMS?
我尝试过 websockets,但我觉得它缺乏控制,即:我无法找到一种方法来列出服务器上连接的客户端数量等。这可能是因为我对 web sockets 缺乏了解,但是 web插座对我来说看起来欠发达。
有什么建议么。
谢谢
双向通信可以通过 PhoneGap 底层的 Cordova 机制实现。为此,您应该编写自己的插件。
从 JavaScript 到本机应用程序的通信非常简单,并在此处记录:
https
://cordova.apache.org/docs/en/5.0.0/guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guide
要点是使用cordova.exec() 方法触发插件中的相应功能。
此处记录了从本机到 JavaScript 的通信: how to send data or message from java application / plugin to javascript with cordova / phonegap
您可以随时从 java 执行 javascript 执行此操作:
字符串 js = "alert('test')"; webView.loadUrlNow("javascript:" + js);
或者您可以初始化插件并保持回调这样做
PluginResult pgRes = new PluginResult(PluginResult.Status.OK, "message"); pgRes.setKeepCallback(true); callbackContext.sendPluginResult(pgRes);
PhoneGap 建立在所有受支持平台的系统 Web 视图之上……您可以在 Web 视图内部做的最好的事情是 Web 套接字(在支持的情况下),或短时间间隔轮询。如果这不适合,您可以创建一个本机插件来利用基于 JS 的应用程序中的本机代码/本机通信库。问题是本机插件必须用本机代码(iOS 的 obj-c,Android 的 java 等)编写,并且不是跨平台的,但可以做到。您可以在此处阅读有关本机插件的更多信息:http: //docs.phonegap.com/en/2.0.0/guide_plugin-development_index.md.html#Plugin%20Development%20Guide