在Rails应用程序中包含Phone Gap插件

时间:2014-06-02 09:00:21

标签: ruby-on-rails cordova plugins

我是手机功能的新手。

我的疑问是如何在我的ruby on rails代码中添加一个新的cordova插件。 请帮忙

1 个答案:

答案 0 :(得分:5)

我遇到了类似的问题,最后写了一篇关于我的解决方案的博客文章。它讨论了如何在Rails网站上加载资产,滚动你自己的user_agent字符串(我假设你的网站将接收来自普通浏览器的请求,以及Cordova应用程序?)等。

一个关键部分是使用非标准的cordova.js文件。有关详细信息,请参阅Cordova Issue CB-6505。 Cordova团队计划解决这个问题(从远程主机获取缩小的资产),但这还没有完成。

我最终将JavaScript资产拆分为块,在我的情况下为3。为所有请求提供了一个块,包括jQuery,Bootstrap和一些其他通用代码。其他2个块(一个用于iOS App请求,一个用于Android App请求)具有Cordova特定文件。我使用3个不同的Manifest文件来完成它,以及rails app / assets / javascripts目录下的2个子目录。子目录包含特定于体系结构的cordova.js和cordova_plugins.js文件,以及所有插件Javascript文件。根据您需要的插件,您可以将它们全部放在通用块中。就我而言,我需要稍微不同的插件集,具体取决于架构。在任何情况下,您都需要提供特定于体系结构的cordova.js文件,具体取决于访问Rails站点的设备。每当我添加/更改使用的Cordova插件时,他们也需要复制到Rails网站代码库中。

我还需要能够区分来自我的Cordova应用程序的访问,以及在同一设备上运行的Web浏览器。在Rails方面,我添加了一个'之前的过滤器'设置了一些可以在app / views / layouts / application.html.erb文件中使用的@vars来选择要提供的JavaScript资产块。过滤器使用用户代理字符串来确定要服务的块。

有关其他详细信息,请参阅:http://craigapayne.blogspot.com/2014/07/creating-truly-hybrid-app-and-backing.html