您对Android Web应用有什么经验(限制,技巧,最佳做法)?

| 更新:正如François所提到的,还有一些替代方案,例如Phone Gap,可以实现更跨平台的方法。这确实是一个很好的建议。我愿意接受任何建议,如果能从您的经验中学习,我将不胜感激。 旁注:仅Web应用程序在我的选项列表中并不高,因为我确实希望它可以在android市场上使用。 我将要开始将一个Facebook应用程序移植到android上,我在争论是否应将其作为本机应用程序或作为荣耀的WebView的包装而编写。 您的经历如何?编写Web应用程序时您遇到什么限制?您有什么建议想分享吗?也许您认为本机应用程序才是替代之路? 为了建立讨论框架,我现在想移植的应用程序很简单  fb应用程序,其中服务器托管在Google App Engine(如果需要的话,用Java编写)中,并且所有客户端代码都是html,css和javascript(带有大量jQuery)。 该应用程序基本上是一款基于回合的两人游戏,带有一堆响应用户点击的静态图像,以及一个非常简单的聊天框(与fb聊天无关)。它可以为每个用户处理多个并发游戏(但要针对不同的对手,而不是相同)。 您认为适合Android Web应用程序吗? 先感谢您。 PS1:无论如何,我将不胜感激,不胜感激,因此,如果您想获得更广泛的答案,请不要将自己局限于此特定示例应用程序。 PS2:是的,我从developer.android.com阅读了“ Web Apps的最佳实践”页面,并点击了那里的链接,但是它并没有过多提及WebView组件的速度或可靠性,特别是在用户互动。在阅读了WebView描述页面中的以下段落后,出现了这个问题,这对典型场景有相当大的限制:   一种常见的情况是   WebView很有用   提供您的信息   您可能需要的应用程序   更新,例如最终用户协议   或用户指南。在您的Android中   应用程序,您可以创建一个   包含一个WebView的活动,然后   用它来显示您的文档   在线托管。      WebView可以在另一种情况下   帮助是如果您的应用程序提供   向用户提供始终需要的数据   Internet连接以进行检索   数据,例如电子邮件。在这种情况下,您   可能会发现建立一个   Android应用程序中的WebView   显示一个包含所有   用户数据,而不是执行   网络请求,然后解析数据   并将其呈现在Android布局中。   相反,您可以设计一个网页   专为Android设备量身定制   然后在您的网站中实现一个WebView   加载网络的Android应用   页。     
已邀请:
我已经实现了两个使用webview的项目,一个使用jqtouch,另一个使用jquery-mobile框架。 您像轻风起步一样继续前进,但是最后,当您查看该应用程序时,它与本机用户体验相去甚远。 Android浏览器比iPhone浏览器慢得多。希望以后可以解决,因此在处理css3繁重的应用程序时,您的响应时间会变慢。在模拟器中进行开发时,Webview会让您发狂,因为它太慢了。 如果您想实现类似本机的元素或固定的选项卡,那么您会做很多工作,最后在将您的应用程序与本机应用程序进行比较时并没有得到很好的解决方案,这很糟糕。 最后,我决定学习本土发展并成为一流的公民。当然,这将花费更多时间,但结果会让我满意。 我认为本机开发不是未来,将来的某个时候,我们将再次编写html-css-js应用程序,它们将像本机代码一样工作,但是根据我的观点,它可能不会在2-3年内出现。 我可以建议您尝试构建Web应用程序,如果性能不能满足您的要求,请切换到本机开发。     
我会按优先顺序选择这些规则 完整的网络,如果您不需要限制为android 如果您需要其他智能手机平台,请使用Phone Gap。 如果您需要联系人,高级图形或任何本机组件,则为全本机 如果您想进入市场并可能赚到一些钱 如果要混合使用混合方法(与Webview结合使用)     
在使用WebView之后,我发现它很棒。我已经构建了一个应用程序,并希望将其移植到Android,但是第二次我意识到WebView可以正常工作,所以我从不回头。我的所有功能都内置在Web App中,因此该应用程序几乎不需要功能(Internet连接检测/更改等) 我走了“混合”路线。我有一些精选的功能是您通过Android应用程序获得的,而该功能是网站所不提供的-因此,请记住这一点以进行营销。 无论哪种方式,我唯一的问题是,当您使用沉重的CSS3样式时,滚动速度可能会停顿-而且我在说边界半径,阴影,渐变等。我想看看它是如何反应的...但是,除此之外,您应该很聪明! 祝好运! (编辑)添加了以下内容:我还想补充一点,我的应用程序在WebView中使用jQuery。它似乎比本地动画要错开得多,但这几乎是给定的。虽然不要误会我的意思,但它们仍然是动画,并且效果仍然不错!如果我可以给jQuery动画一个FPS(向上/向下滑动),我会说它们大约是20,而原生动画则是25-30(从1-30的比例)。引人注目,但不会从体验中带走任何东西。 同样,不要误解我的意思,它非常好用!例如,我有一个计时器,该计时器在页面加载和递减计数时启动...这在App> WebView中非常有效。没有错误,并且如果有,它就会反映在网站上(又名jQuerys错误) 只是想在我的2美分中添加更多内容=)     
如果您使用Javascript制作动画,则可能会发生一些奇怪的事情。 我已经使用WebView来显示图形,采用了多种方法,有时甚至会失败,在代码逻辑中不应该使用的上方或下方的一行产生了区别... 可以通过使用Javascript调用Java方法的混合方法来完成,但这有时很棘手。 就我个人而言,由于经验不足,我倾向于始终选择本地人。它速度更快,并且在使用重定向或javascript的浏览器渲染中也没有问题。 就我个人而言,如果我同时针对多个平台(iOS,Android ..)进行开发并且没有时间,资源或能力来开发适用于所有人的原生语言,那么我只会使用非本机方法。     
当前,JavaScript接口在2.3中已被严重破坏,因此您可能需要解决它。 除此之外,我不得不对本机创建复杂布局时遇到的问题感到非常失望。有时我希望返回并在WebView中进行所有操作。 HTML + JS开发的缺点是它是JS :)。您没有静态类型,因此在某些情况下调试可能会更困难。 (哦,顺便说一句,在某些手机上,OnConsoleMessage OnJsError等也被严重破坏了)     
如果您正在考虑跨平台的本机应用程序,则Appcelerator Titanium是另一种选择。     

要回复问题请先登录注册