安卓:PhoneGap与Webview的区别

33

我一直在研究PhoneGap,现在陷入了僵局,需要一些建议。我知道PhoneGap本质上是将html5、css、JS网站转换为可分发的“应用程序”,这让我产生了一个问题:

为什么不直接在活动中使用Webview来做同样的事情,并保持应用程序的本地化呢?


2
PhoneGap 不会将 HTML、CSS、JS “转换”为本地代码进行分发。它会创建一个 WebView,添加 W3C API 并将其包装在原生的 Android 应用中。 - Simon MacDonald
+1。我也在想同样的问题。 - Sahat Yalkabov
3个回答

33

PhoneGap的优势在于它提供了API,使你的HTML/Javascript能够与手机进行交互(例如相机、加速度计、媒体等)。

这些API在多个设备(iOS、Android、WinPhone、Blackberry等)上是标准化的。因此,您可以编写一组HTML/Javascript并部署到多个平台。

如果你只创建了一个WebView,你将没有PhoneGap的API,需要在每个你感兴趣的平台上构建容器。


9

很好的问题,我也搜索了一下,因为我们采用了Phonegap解决方案,我认为这对我们来说是错误的方式。

长话短说: 如果你用Web开发技能编写一次UI,就不需要知道本地语言,它会编译并准备好测试。 Web开发人员更加受欢迎 => 开发人员价格更便宜。

当客户想要一个伟大想法的里程碑1时,它会询问几家公司、自由职业者的开发价格和时间。如果是一个非常基本的应用程序版本,使用Phonegap将具有最低的开发成本(如果您的Web开发技能与平台开发技能相同),WebView排名第二,本地排名最后。

客户对使用Phonegap构建的应用程序结果感到满意,并希望获得更多投资者,因此它将制作演示文稿,其中他们要求更多功能。

在里程碑2中,您将添加一些功能。有些很容易通过命令行安装即可,有些则不然。也许你会不幸地想要两个现有插件的组合以及一些额外的东西。结论将是:您必须开发一个插件。此时已经有一个非常大的问号,哪个更便宜:Phonegap+Phonegap插件还是WebView。如果您需要5个现有插件并且您的插件需要一些修改,那么仍然使用Phonegap。但是,如果您只需要1个插件,只有您自己的插件,则WebView是合适的方式。也有一些情况使得Phonegap结构无用。此外,在使用Phonegap开发Web文件和本地代码时存在版本控制系统问题:有些在每次构建时重新生成,有些则不会。本地平台仍然更昂贵。现在所需的功能已经开发完成。客户将为投资者制作演示文稿,其中将显示使用这些新功能的执行速度。或者在这里,他们将要求优化、运行时加速或发布到市场后,他们将看到一些在低端手机上运行而不是在演示中使用的终极手机,并决定进入里程碑3:加速

在优化、加速(里程碑3)时,您将决定是否需要本地GUI。在使用Web开发构建了所有GUI之后,现在需要将其丢弃并实现边缘,也许某些部分甚至需要NDK来加速。使用Phonegap没有好的方法。但是你已经雇用了Web开发人员,或者与那家公司签约。现在回到那个能够编写本地代码的公司和开发人员。他们不会从0开始,因此他们需要分析代码、重构代码,而您的开发价格将至少增加50%,就像您从0开始使用本地一样。


1

好问题,你仍然可以使用webview来实现,但是你将无法访问原生功能,如铃声、相机等等,不过以这种方式完成的应用程序将被视为本地应用程序。


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