我很想知道使用Phonegap与使用Android相比是否存在任何缺点或限制。还有什么我们可以用其他平台无法实现的呢?
为什么要专门选择Phonegap over Android(除了预算或跨平台兼容性),反之亦然?我正在寻找有理由的明确场景。
答案 0 :(得分:53)
完全披露我是PhoneGap Android实施的核心提交者之一,所以我的观点可能有偏见,但我觉得我很公平。
要回答您的问题,这实际上取决于您的要求。您已经驳回了预算和跨平台,这是PhoneGap的两大关键优势。例如,如果我从未打算瞄准任何平台,但我可能会使用原生Android开发,但如果我们去其他平台,我会选择PhoneGap。另外,我看看我的团队,他们是硬核Java程序员吗?去Android。他们是HTML开发人员吗?去PhoneGap或纯HTML5。
此外,它取决于您正在编写的应用程序类型。第一人称射手,去Android。一个表格驱动的数据应用程序,PhoneGap是要走的路。
无论如何,在不知道你正在尝试开发什么类型的应用程序的情况下,很难具体说明。
答案 1 :(得分:24)
PhoneGap Pros
PhoneGap在许多情况下都是一个出色的解决方案:
多个平台:由于应用程序的前端是使用Web技术构建的,因此可以在不同平台上部署具有完全相同源代码的PhoneGap应用程序。
访问基本本机功能:如果应用程序需要对本机API(如摄像头,地理位置和联系人)的最低访问权限,PhoneGap只允许使用几行JavaScript代码访问这些API。
离线使用:尽管该应用是使用网络技术构建的,但它仍然可以提供离线功能,并且可以访问浏览器的本地缓存。
PhoneGap Cons
由于应用程序的前端是用JavaScript构建的,因此会产生许多限制。
数据处理:在设备上进行数据处理时,母语比JavaScript快得多。
后台处理:大量应用程序依赖后台线程来提供流畅的用户体验:例如,计算背景中的GPS位置。 PhoneGap API是使用JavaScript构建的,不是多线程的,因此不支持后台处理。
访问高级本机功能:PhoneGap的API尚不支持许多本机API。
复杂的业务逻辑:许多应用程序(如企业应用程序)都非常复杂。在这种情况下,拥有一定数量的本机代码会更好。
高级图形:使用只能使用第三方库访问的高级图形的应用最好本机完成。
答案 2 :(得分:5)
构建移动网络应用的好处: 1)只需要与Objective-C或Java相比的HTML5 / CSS / Javascript技能。我们使用Mobl(http://www.mobl-lang.org)使事情更简单,Mobl是一种特定于域的语言,用于创建编译为javascript / html的移动Web应用程序。 2)适用于所有平台(iOS,Android,Windows 7,移动网络)的单一代码库 3)快速测试和部署(直到你通过电话接收它,此时你受到App Store审查条件等) 4)使用Phonegap,您仍然可以通过App Store或Android Market
利用分发和集成支付缺点: 1)性能不佳,尤其是如果你的应用程序图形强烈,即游戏。您可以实现缓存或利用某些第三方解决方案(即Sibblingz)进行本机图形加速,但在大多数情况下,本机应用程序比移动Web应用程序更快/更顺畅 2)缺乏预先构建的UI小部件,转换,标准控件等。您的开发时间可能会更长,尤其是如果您想要一个具有原生外观的抛光外观的应用程序。您可以尝试使用Sencha Touch,JQ Touch或具有预构建UI元素的类似工具,但您可能仍需要花费大量时间设计应用程序以使其看起来像原生。
那么,您应该构建移动Web应用程序还是本机应用程序?如果您正在构建一个以图形方式涉及或涉及任何计算成本高昂的操作的应用程序,请确保原生,因为这些工具还不足以使移动Web应用程序的工作变得简单。如果您正在构建相当简单的东西并且不需要任何原生样式或设计润色,请使用移动Web路线。