我一直在研究 phonegap 和许多其他移动应用程序制作解决方案。由于 phonegap 声称支持最多种类的技术,它似乎非常有吸引力。但是,在查找入门指南时,有单独的 iPhone、Android 等开发指南。
所以我想知道开发跨平台应用程序的方法是什么?是否可以一次编写代码并在 phonegap 支持的所有平台上使用?你是用纯 html/css/js 编写的吗?
我一直在研究 phonegap 和许多其他移动应用程序制作解决方案。由于 phonegap 声称支持最多种类的技术,它似乎非常有吸引力。但是,在查找入门指南时,有单独的 iPhone、Android 等开发指南。
所以我想知道开发跨平台应用程序的方法是什么?是否可以一次编写代码并在 phonegap 支持的所有平台上使用?你是用纯 html/css/js 编写的吗?
PhoneGap vs 'native'(vs Titanium 和其他)已经写了很多[见右侧的'相关'栏]。单独指南的原因是您需要这些特定环境来最终构建您的应用程序(将您的 html/css/js 与 PhoneGaps 平台特定代码合并)。PhoneGap Build 试图解决这个问题:它为您构建应用程序(作为 Web 服务)。
开发本身发生在 html/css/js 中。您的 js 代码将可以访问手机上的 js 通常无法使用的功能(例如相机),通过一组不同平台的 PhoneGap 代码提供的接口。如果 PhoneGap 不提供某些功能,您可以自己添加(或找到执行此操作的第三方插件),但这需要您编写依赖于平台的代码。在我使用它的时候,我无法通过 PhoneGap Build(为您构建的网络工具)使用自定义库。
就个人而言,我完全放弃了 PhoneGap 的想法。你没有原生的“UI”,而是留下了你可以在 HTML/css/js 中做的事情。在我看来,这不仅在许多方面受到限制(关于外观和速度),它也不太“直截了当”和“稳定”。这导致了许多奇怪且难以解决的“错误”(该应用程序有效,但只要用户不移动并以“预期”方式轻敲他/她的手指,就会出现故障,我不喜欢那样, 亲自)。解决这些问题需要很多时间,我觉得这样做并不有趣。我说的是单一电话,单一平台。你可以想象如果你在另一个上尝试这个会发生什么。
此外,使用PhoneGap 会使您依赖另一个第三方(即PhoneGap)。此外,您编写的代码和学习的技能在移动层面上并不那么“标准”,因此可重用性较低,我怀疑这种情况是否会很快改变。支持和文档也较少,工具也是如此。最后,开发原生代码让你更接近实际平台,我认为这很重要,因为它们各有优缺点和特点。
Android 和 iOS 现在占所售智能手机的 85%。所以目前,我的策略是针对这两个。学习曲线肯定会更大,特别是如果您来自网络并且已经具备 html/css/js 技能。但是一旦“达到标准”,我认为开发一个应用程序两次原生可以与PhoneGap所需的所有调试竞争,时间上(假设你希望你的PhoneGap应用程序至少有一定程度的体面)。在质量方面,您的原生应用程序会更好。当然。
但是,这只是一种观点,也是一种可能会随着时间而改变的观点。我的策略(专注于原生开发)主要基于我在 PhoneGap 方面的经验。还有其他方法,例如 Titanium,它们各有优缺点,您至少也可以看看这些方法。
编辑:对长篇大论感到抱歉。毋庸置疑,它的相关性以及是否同样适用于您,完全取决于您来自哪里(技能等)以及您要去哪里(是否坚持使用一个或两个平台甚至是一种选择) .