将Ruby on Rails应用程序转换为本机Android PhoneGap应用程序

8
我一直在开发一个用Ruby on Rails编写的jQuery移动web应用程序,现在想把它作为本地Android应用程序使用。我已经设置了phonegap项目来加载我的URL,似乎一切都正常,但我读到谷歌会拒绝仅仅是一个外部URL的Webview容器应用。有人有这方面的经验吗?
据我所知,需要重写Web应用程序,使用ajax调用来填充页面,而不是仅仅依赖于对Web服务器的Web请求。有人可以提供任何见解吗?他们是否会接受一个仅仅加载外部URL的PhoneGap应用程序?任何帮助都将不胜感激。
更新1:我还读到处理无互联网连接能力是审批/拒绝您的应用程序的主要原因之一。我认为使用一些逻辑在android应用程序中检查互联网连接,并且如果存在,则加载外部url,否则加载本地html闪屏页面,可以解决这个问题。这种想法是否可行?
更新2:是否可以在phone gap应用程序中创建一个app的“骨架”,由基本的HTML文件组成,只是使用ajax来下载所有的主要HTML?这样,即使没有互联网连接,该应用程序也将继续运行,但您也可以对每个请求中下载的页面内容进行大量更改。这是一个可行的选择吗?

构建页面时不要连接网络,这样即使设备离线,应用程序也至少会显示一些内容,并弹出对话框告知用户他们正在离线运行。Phonegap在此方面有非常好的文档。我使用AJAX传递JSON对象来处理稍后将显示的任何数据。http://docs.phonegap.com/en/2.3.0/cordova_events_events.md.html#online - Jason
是的,但这是否是谷歌拒绝该应用在其应用市场上的必然原因? - Tim S
不应该,我认为他们的意思是如果页面上的所有内容都来自服务器,包括图形等。很多应用程序在离线状态下是无用的,但仍然会显示大部分应用程序。 - Jason
1个回答

2
我从未听说过因为只是一个WebView容器而被Play Store拒绝的应用。但即使他们不会因此拒绝你的应用,你也不应该以这种方式构建PhoneGap应用程序。你最终将得到一个感觉像是一个WebView容器的应用程序,并且当连接不稳定时很容易出现故障。请记住,即使在良好的接收情况下,手机的延迟也很高,因此减少您必须进行的请求(用于静态文件和资产)至关重要。
理想情况下,在将网站移植到PhoneGap应用程序时,您应该尽可能地解耦界面。应该尽量减少从控制器传递到视图的变量数量,并通过AJAX调用传递更多数据。当您的前端代码(app/views中的所有文件)可以静态地提供服务时,移动到PhoneGap应用程序就很容易了。
确保控制器中的操作都具有JS响应(format.js),而不仅仅是HTML。您的视图应该通过AJAX调用rails获取填充页面的数据。然后,您可以将视图(和资产)捆绑到PhoneGap应用程序中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接