从 Apache Cordova 开始

2024-02-10

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

Apache Cordova 主页也是这么说的。

而且因为这些 JavaScript API 在多个 设备平台并基于网络标准构建,该应用程序应该是 可移植到其他设备平台,只需进行很少的更改或无需更改。

Thanks.


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

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

为了创建适用于 iOS 和 Android 的应用程序,您需要为两个平台设置适当的构建工具 http://cordova.apache.org/docs/en/2.6.0/guide_getting-started_index.md.html#Getting%20Started%20Guides。然后您要做的就是将组成应用程序的 HTML/Javascript 文件导入到这些工具中并“构建”本机应用程序,这会将您的 HTML/JavaScript 包装在本机代码中,添加设备特定的 Cordova 代码(通常采用以下形式) Android 上的 cordova.jar 之类的文件)并创建可下载的包,然后您可以将其发布到应用商店。将应用程序“编译”到多个平台的过程可能会很痛苦,但幸运的是,有一个自动化服务可以提供帮助,因此请查看在仍然免费的情况下构建 PhoneGap https://build.phonegap.com/.

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Apache Cordova 开始 的相关文章

随机推荐

  • r 将字符串填充到相同的长度

    经过几个小时的搜索应该很简单的内容后 我需要帮助 我想做的事 确保所有字符串都填充为相同的 26 个字符长度 Dataset library stringr names lt structure list names c A ABC ABC
  • JSON 值可以包含多行字符串吗

    我正在编写一个可由 Java 程序读取的 JSON 文件 片段如下 testCases case 1 scenario this the case 1 result this is a very long line which is not
  • 如何动态添加和扩展私有数据集合?

    设想 I have 3个组织 O1 O3 O1 是申请人的组织 O2 O3 管理与他们共享的公共和私人数据 O1 O3 彼此共享私有数据 O1 O2 共享私有数据 网络正在运行 集合已经分发 一切正常 当我现在想要添加更多组织 以千计 O4
  • 为什么从另一个文件导入类会调用 __init__ 函数?

    该项目的结构是 project 主 py 会话 py 蜘蛛 py session py中有一个类 import requests class Session def init self self session requests Sessi
  • 如何通过反射找出方法的可见性?

    Context 我正在尝试学习 练习 TDD 并决定我需要创建一个不可变的类 为了测试 不变性不变量 你能这么说吗 我想我只需通过反射调用类中的所有公共方法 然后检查类之后是否没有更改 这样我以后就不太可能不小心破坏这个不变量了 这本身可能
  • 为什么Python中的元组可以使用reversed但没有__reversed__?

    在讨论中这个答案 https stackoverflow com questions 9449674 how to implement a persistent python list 9449852 9449852我们意识到元组没有 re
  • 更正应用程序的类路径,使其包含类 Log4J2LoggingSystem 和 PropertiesUtil 的兼容版本

    我正在将一个项目从 Spring Boot 2 6 1 迁移到 Spring Boot 3 0 2 但我遇到了 log4j 依赖项版本的问题 我已经修改了所有给我带来问题的依赖项 但我仍然无法解决问题 错误如下 Java HotSpot T
  • Flowplayer 播放一切

    我有一个flowplayer我正在使用它 下面有几张图片 当您点击这些图片时dialog是用这些图片的放大版本创建的 问题是flowplayer永远会在最上面dialog 我尝试过设置z index of the dialog高和flowp
  • 如何在 SwiftUI 中处理拖动到停靠栏图标上的操作?

    我已经设置了一个 SwiftUI 应用程序 它似乎接受拖放到停靠图标上的图像 但我无法弄清楚在应用程序代码中处理拖放图像的位置 如何处理将图像 或任何特定文件 拖放到 SwiftUI 应用程序的停靠图标上 背景 对于使用 NSApplica
  • 将枚举数据绑定到 WPF + MVVM 中的组合框

    我读了这个非常相关的问题在这里 https stackoverflow com questions 58743 databinding an enum property to a combobox in wpf 由于答案中的链接 这非常有帮
  • Golang:将文件附加到现有的 tar 存档中

    如何将文件附加到 Go 中现有的 tar 存档中 我没有看到任何明显的东西docs http golang org pkg archive tar 关于如何去做 我有一个已经创建的 tar 文件 我想在它关闭后向其中添加更多内容 EDIT
  • 为什么我不必在第二个 TableViewController 中释放 ManagedObjectContext

    我有两个显示 CoreData 对象的表视图控制器 一种是详细视图 带句子 一种是概述 带故事 选择一个故事 gt 查看句子 看来我过度释放了管理对象上下文 我最初在 dealloc 的两个 TableViewController 中发布了
  • 优化Python代码

    关于优化此 python 代码的任何提示寻找下一个回文 输入号码可以为1000000位 添加评论 usr bin python def inc lst lng this function first extract the left hal
  • 修复 Swift 3 中的警告“C-style for Statement is deprecated”

    我有更新Xcode到 7 3 现在我对用于创建随机字符串的函数发出警告 我尝试过改变for声明与for i in 0 lt len 然而 警告变成了错误 我怎样才能删除警告 static func randomStringWithLengt
  • Swift stdlib 工具错误

    我在使用 Xcode 8 1 和 Swift 3 编译时遇到此错误 Swift stdlib 工具错误 编译日志的末尾如下所示 Users Library Developer Xcode DerivedData Build Products
  • 让用户将记录器注入 Nodejs 模块的最佳实践

    我为 nodejs 编写了这个模块 可用于通过 sockjs 从任何地方向客户端分派事件 现在我想包括一些可配置的日志记录机制 目前 我将 winston 添加为依赖项 要求它作为每个类中的记录器并使用 logger error logge
  • 如何使用 MATLAB 和 JDBC 加速表检索?

    我正在使用 MATLAB 调用的 JDBC 访问 PostGreSQL 8 4 数据库 我感兴趣的表基本上由不同数据类型的各个列组成 他们是通过时间戳来选择的 由于我想检索大量数据 因此我正在寻找一种使请求比现在更快的方法 我现在正在做的事
  • 如何在 XAML 中使用 C# 中定义的画笔资源

    到目前为止我有这个
  • 新的 Conda 环境以及适用于 Jupyter Notebook 的最新 Python 版本

    由于 Python 版本变化很少 我总是忘记如何使用最新的 Python for Jupyter Notebook 创建新的 Conda 环境 所以我想下次将其列出来 从 StackOverflow 来看 有一些答案不再有效 下面是我在 S
  • 从 Apache Cordova 开始

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