0

我一直在研究PhoneGap,我做了一些搜索,得到了以下结果。

  1. 它是一个跨平台的工具。
  2. 但是,如果我想要一个已经为 Android 编写的 iOS 或 Windows 8 应用程序(使用 phonegap),我必须再次重写很多代码。(我知道如果所有平台的 UI 都相同,那么编码会减少很多。)
  3. 我可以访问这些 API
  4. PhoneGap Docs我推断它允许我创建需要硬件访问的应用程序。
  5. 现在假设我需要访问一些核心 OS API,例如电话或短信访问,我需要创建一些插件
  6. 我找到了一些PhoneGape-Plugins,但这些插件是特定于操作系统的。所以,我必须分别为每个平台编写插件。
  7. 通过比较

这个比较来看,很少有其他原生应用程序能提供更好的性能和更好的用户体验。如果我的发现是正确的,

那我为什么要选择PhoneGap而不是native?还是我在这里遗漏了一些重要的东西?

我想开始为 Windows 8 开发进行开发,而且我必须学习 C#/XAML,如果我选择 PhoneGap,我还需要学习 JS/HTML/CSS。(已经在 Android 上工作)。

4

1 回答 1

0
  1. 是的
  2. 您必须重写的唯一代码是特定于设备的代码,用于访问当前不可用的某些硬件功能,也就是自定义插件。Cordova 已经有很多插件,比如 SMS 插件(不确定 Telephone,但我希望它存在。)您可以使用像 Dojo Mobile 或 JQuery Mobile 这样的移动框架,它会自动调整和更改 UI 元素以匹配本机设备 UI 元素。我认为使用其中一个框架基本上是制作混合应用程序的要求。
  3. 正确,但每个 API 在所有平台之间的支持级别略有不同。
  4. 是的,Cordova 的重点是让您通过 JavaScript 访问设备功能。否则,为了访问硬件功能,您需要编写本机应用程序。
  5. 是的,如果插件不存在或不支持您的平台,您必须创建或扩展插件。
  6. 插件仓库按平台分开,有时人们会编写涵盖多个平台的插件(如果他们总是这样做会很好,但通常人们只为他们需要的平台编写插件。)所以是的,你可能需要编写它们。

我认为我们正处于网络技术发展的阶段,手机上的浏览器足够强大,原生性能并不会真正超过混合性能。当然可能有一些例外,但我认为 Fastbook 证明了 HTML5 应用程序的性能与原生应用程序一样好。

如果您想在不学习 Java、C# 和其他本机技术的情况下针对多个移动操作系统,您应该选择 Phonegap/Cordova 而不是本机。它提供的其他一些好处是单个 HTML 代码库(易于维护)并将您的 web 应用程序打包为本机(易于在应用程序商店中分发。)但是,如果您有非常特定的硬件功能需求,而 Cordova 或插件,那么无论如何您最终都必须学习这些母语。那时,如果您只针对单个操作系统(如 Windows Mobile),则可能/可能只使用本机语言编写整个应用程序是有意义的。但是,我真的不认为任何人都应该针对单一操作系统。

于 2013-04-29T13:26:13.340 回答