7

我刚刚下载了 Apache Cordova,似乎有特定于平台的版本。在将其移植到另一个平台之前,我是否必须为特定平台编写代码?是否可以创建一个多平台项目?我是否正确理解我应该开始工作的方式?

这也是 Apache Cordova 主页所说的。

由于这些 JavaScript API 在多个设备平台上是一致的,并且基于 Web 标准构建,因此该应用程序应该可以移植到其他设备平台,而只需极少的更改甚至无需更改。

谢谢。

4

3 回答 3

34

我认为您对科尔多瓦的理解存在细微差距。Cordova 用于构建混合移动应用程序。混合意味着您的应用程序基本上是一个使用 HTML/CSS/JavaScript 构建的标准网站,但它可以访问本机设备功能。通常,当您使用 JavaScript 构建常规网站时,如果不直接使用本机代码,您将无法做某些事情,例如拍照或通过手机上的联系人。但是,Cordova 允许您仅从 JavaScript 访问这些本机函数!而且您永远不必接触本机代码!因此,您将使用 HTML/JavaScript/CSS 构建一个应用程序(一个统一的代码库!),并且在您完成构建过程之后,将有多个应用程序文件,一个用于您“构建”它的每个本机平台。

是的,使用 Cordova 的一大好处是您可以轻松创建多平台应用程序。你要做的是首先在 HTML/JavaScript 中创建你的应用程序——当你需要使用原生 API 时,你可以调用适当的Cordova JavaScript API——这个 API 在所有平台上都是通用的,这意味着调用 saycordova.someAPI.doCoolDeviceOnlyThingThatBrowsersCantDoYet(parameter)将期望相同参数,无论用户使用什么设备。然后,您构建的 Cordova 应用程序将调用等效的本机功能,无论该应用程序是为哪个操作系统构建的。

为了为 iOS 和 Android 创建应用程序,您需要为这两个平台设置适当的构建工具。然后您要做的是将构成您的应用程序的 HTML/Javascript 文件导入这些工具并“构建”本机应用程序,它将您的 HTML/JavaScript 包装在本机代码中,添加设备特定的 Cordova 代码(通常以像 Android 上的 cordova.jar 之类的东西)并创建可下载的包,然后您可以将其发布到应用商店。将您的应用程序“编译”到多个平台的过程可能会很痛苦,但幸运的是,有一项自动化服务可以提供帮助,因此请在仍然免费的情况下查看PhoneGap 构建。

您应该能够使用您最喜欢的 HTML 编辑器、Ripple 模拟器和 Cordova API 参考指南开始构建应用程序。但是,您可能需要一个真实的设备来测试和构建您的应用程序,因此您可能必须设置至少一个本机环境(例如带有 Android ADT 和适当的 cordova.js 文件的 Eclipse。)(cordova .js 文件在平台之间非常相似,除非平台之间存在差异,例如在处理 JavaScript 和本机代码之间通信的桥中。)

希望我已经回答了你所有的问题——祝你好运!

于 2013-04-22T15:36:24.367 回答
3

只要您不需要API,您就可以在浏览器中编写所有代码。但是,当您想要测试 Cordova API 功能时,您必须在平台上运行。

平台特定文件(例如 android 的 eclipse 项目)包含一个 www 文件夹(android 的 assets/www),您必须在其中放置所有代码。在该文件夹中,所有内容都应该是跨平台的,但有一个例外:cordova.js 文件,其中包含到每个平台的本机代码的桥梁。

您也可以尝试Ripple直接在浏览器上运行项目,这具有更好的调试工具的优势。不过,它远非功能完整。

于 2013-04-22T13:06:28.580 回答
0

@MBillau 的回答完美地描述了这个概念,从源代码的角度来看,有一些特定的 CLI 相关命令:

  • cordova create com.domain.projectname- 创建一个项目。

  • cordova platform add ioscordova platform add android- 添加目标平台,在创建项目后记住,否则您可能会在终端中cd com.domain.projectname看到类似的内容。Current working directory is not a Cordova-based project.

  • cordova plugin add pluginname- 将特定插件添加到项目中,您将经常需要这样做。在您的终端中,您应该有类似Installing "pluginname" for iosand的东西Adding pluginname to package.json

  • 最后cordova buildor cordova build iosorcordova build android构建它,cordova emulate android或者cordova run android在您的设备上运行它或在 Android 上模拟。对于 iOS,您将需要 Xcode。

您可以在https://cordova.apache.org/docs/en/latest/上找到更多信息

于 2019-10-15T18:38:58.883 回答