乍一看,Cordova 和 PhoneGap 的存在主要是为了开发在移动设备上使用的应用程序。好吧,我对原生移动应用程序的开发不感兴趣。
存在我们自己的 web 应用程序(cms),现在的问题是,像 Cordova 或 PhoneGap 这样的移动工具包是否能够帮助开发我们的部分 cms 功能,以便能够支持更多平台。
使用 Cordova 或 PhoneGap 开发纯基于浏览器的 Web 应用程序是否有意义?
乍一看,Cordova 和 PhoneGap 的存在主要是为了开发在移动设备上使用的应用程序。好吧,我对原生移动应用程序的开发不感兴趣。
存在我们自己的 web 应用程序(cms),现在的问题是,像 Cordova 或 PhoneGap 这样的移动工具包是否能够帮助开发我们的部分 cms 功能,以便能够支持更多平台。
使用 Cordova 或 PhoneGap 开发纯基于浏览器的 Web 应用程序是否有意义?
Cordova/Phonegap 使用移动操作系统提供的功能扩展了 javascript。因此,使用这些框架开发的应用程序必须编译到目标平台,并且只能在嵌入式浏览器中嵌入 HTML 等。扩展需要 java、objective-c 等代码才能运行,所以我认为您无法从这些代码中受益。
使用 Cordova/Phonegap 时,您必须编写自己的移动设备兼容 HTML 代码。该框架没有提供简洁的移动设备就绪用户界面控件,但仅提供对设备特定硬件或软件 api(如通知等)的访问权限。
Phonegap(或现在称为 Cordova)的工作原理是将您的网页包装在 a 中Webview
并让您(在 JavaScript 中)访问某些本机设备功能,例如相机、加速度计、联系人等。
至于它是否会帮助您取决于是否要使用任何本机设备功能,例如,如果您认为将相机(当前对相机的 HTML 支持相当参差不齐)合并到您的网络应用程序中是有用的,那么您可能应该考虑一下。
另一个考虑因素是您的用户将如何访问应用程序,使用 Phonegap 它将包放入本机应用程序,他们可以从主屏幕启动它(或者他们在移动设备上启动应用程序),而使用 Web 应用程序则取决于在设备上,在 iOS 上,您可以将其固定到主屏幕并添加一些元标记,使其看起来更像原生(例如隐藏地址栏),而在 Android 上,据我所知您不能这样做。
最后考虑一下,使用 Phonegap 调试您的应用程序可能会更痛苦,因为您的 HTML/Js 包含在 a 中Webview
,但据我所知,在那里调试它没有简单的方法。
我似乎记得在某处读过的另一件事是,在 iOS 上,Apple 不会让您的本地应用程序的 Webview 访问与 safari 中相同的内存量,因此当打包到 Phonegap 应用程序中时,确切的健全的 Web 应用程序实际上可能是慢点。
总而言之,将您的应用程序包装在 Phonegap 包装器中的好处是访问本机设备功能以及您的用户如何访问您的应用程序,如果这些不重要(或弊大于利),那么它可能不值得您同时走那条路。
Cordova 只是 PhoneGap 的最新名称。如果您只是想建立一个移动网站,我不会这样做。首先,在几个在线商店(iTunes、Play)上发布这样的应用程序是一件痛苦的事情。