【问题标题】:Bidirectional communication between a phonegap jquery mobile application and java serverphonegap jquery 移动应用程序和 java 服务器之间的双向通信
【发布时间】:2012-08-19 21:53:07
【问题描述】:

谁能建议我如何解决这个问题。

我希望在 phonegap 上的 jquery 移动应用程序和 java 服务器之间建立双向通信。

能否建立发布/订阅通信?

有没有办法使用 JMS?

我尝试过 websockets,但我觉得它缺乏控制,即:我无法找到一种方法来列出服务器上连接的客户端数量等。这可能是因为我对 web sockets 缺乏了解,但对我来说,Web 套接字看起来欠发达。

任何建议。

谢谢

【问题讨论】:

    标签: java jquery ajax cordova publish-subscribe


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

      可以使用 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 这样做:

      String js = "alert('test')"; webView.loadUrlNow("javascript:" + js);

      或者您可以初始化插件并保持回调这样做

      PluginResult pgRes = new PluginResult(PluginResult.Status.OK, “信息”); pgRes.setKeepCallback(true); callbackContext.sendPluginResult(pgRes);

      【讨论】:

        猜你喜欢
        • 2013-06-25
        • 2013-09-18
        • 1970-01-01
        • 2019-09-04
        • 1970-01-01
        • 2018-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多