2013-01-16 143 views
8

我一直在研究用Ruby on Rails编写的jQuery移动Web应用程序,并希望将其作为原生Android应用程序提供。我已经设置了phonegap项目来加载我的网址,并且一切都似乎正在工作,但我一直在阅读谷歌将拒​​绝应用程序,如果它只是一个webview容器到外部网址。有没有人有这方面的经验?将Ruby on Rails应用程序转换为原生Android PhoneGap应用程序

从我可以告诉我,我需要重写Web应用程序使用Ajax调用来填充页面,而不是仅依靠Web服务器的Web请求。任何人都可以提供任何见解吗?他们会接受只是加载外部网址的PhoneGap应用吗?任何帮助表示赞赏。

更新1:我也读过,能够处理没有互联网连接是他们将批准/拒绝您的应用程序的主要原因之一。我认为这可以在Android应用程序中用一些检查互联网连接的逻辑来处理,如果它存在,则加载外部网址,如果它不加载本地html飞溅页面。这个想法会好吗?

Update2:将手机应用程序的“骨架”作为基本html文件在手机差距应用程序中使用,它只是使用ajax来拉下所有主html?这样,应用程序仍然可以在没有互联网连接的情况下运行,但是您也可以对每个请求中将要停用的页面内容进行大的更改。这是一个可行的选择吗?

+0

在没有连接的情况下构建页面,以便应用程序至少显示某些设备是否处于脱机状态,并弹出一个对话框让他们知道它们正在离线运行。 Phonegap对此有非常好的文档。我使用AJAX传递JSON对象来处理稍后将显示的任何数据。 http://docs.phonegap.com/en/2.3.0/cordova_events_events.md.html#online – Jason

+0

是的,但这是一个绝对的理由谷歌会拒绝它的应用程序市场的应用程序? –

+0

不应该,它是什么意思,我认为如果页面上的一切都来自服务器,图形和所有。很多应用程序都离线无用,但仍显示大部分应用程序。 – Jason

回答

2

我从来没有听说过由于只是一个WebView容器而被Play商店拒绝的应用程序。但即使他们不会拒绝你的应用程序,你也不应该这样构建PhoneGap应用程序。你最终会得到一个应用程序,它会让你觉得它只是一个WebView容器,并且当连接不稳定时会轻易破坏应用程序。请记住,即使在接收良好的情况下,手机的延迟也很高,因此减少必须制作的请求数量(对于静态文件和资产)是非常重要的。

理想情况下,将网站移植到PhoneGap应用程序时,应该尽可能地将接口解耦。更少的变量应该从控制器传递到视图,并且更多数据应该通过AJAX调用。当您的前端代码(app/views中的所有文件)可以静态提供时,转移到PhoneGap应用程序非常简单。

确保控制器中的操作都对JS有响应(format.js),而不仅仅是HTML。您的观点应该是对Rails进行AJAX调用,以获取通过AJAX填充页面的数据。然后,您可以将您的视图(和您的资产)捆绑到您的PhoneGap应用程序中。

相关问题