我使用 Rails 3 和 JQuery Mobile 编写了一个简单的聊天应用程序,您可以在这里查看原型:http: //budz.vdsites.com
然而,它的用途非常有限,作为一个纯粹的网络应用程序,我希望包括一些本机移动功能,例如通知、图片上传(通过图库或相机)、联系人获取以及之后可能会出现的更多功能。我还计划为桌面部署一个类似的增强客户端,两者使用相同的前端。
一个重要的要求是能够编写最少的代码来启用这些功能,因为我可以支持的不仅仅是一个平台集,然后维护每个代码库将变得乏味。
经过一番研究,我发现我最好的选择是基于 PhoneGap 的无铬原生应用程序,在手机端具有足够的功能来启用这些额外的功能。为此,InAppBrowser 小部件似乎完美地适应了这项工作。
但是,进一步研究它的 API,似乎几乎没有设施可以在本机应用程序和 Web 应用程序之间实现基本通信,除了基本的负载相关事件,除非我大规模破解我的应用程序以触发,否则这些事件对我来说是无用的这些事件(这样做看起来很假)。
最终,我希望能够在 PhoneGap 端监听自定义事件,并从 webapp 触发它们。
我想出了一些线索来实现所需的功能:
- 我可以创建一个 DOM 元素来使用它的属性作为本机端和 Web 应用程序之间的媒介 - 但似乎没有办法从它的容器外部访问 DOM。
- 我可以在 inAppBrowser 之外的 phoneGap 监听我的 webapp 中的一些特定端点,并根据服务器响应触发本机功能 - 这肯定有效,但这意味着我必须为其他平台编写不同的监听代码,从而稍微破坏我的最小编码要求。
所以这是我的问题:
- 有没有办法使用 PhoneGap 实现我想要的行为(事件调度)?
- 您如何看待我提出的两种方法?
- 我应该寻找另一个平台吗?你有什么建议?
- 社区对此有何看法?您如何处理此类案件?
感谢您提供的任何见解!